28 lines
785 B
TypeScript
28 lines
785 B
TypeScript
|
import * as fs from "fs";
|
||
|
import { crawl } from "../../src/bin/tools/crawl";
|
||
|
|
||
|
export function removeNodeModules(params: { nodeModulesDirPath: string }) {
|
||
|
const { nodeModulesDirPath } = params;
|
||
|
|
||
|
try {
|
||
|
fs.rmSync(nodeModulesDirPath, { recursive: true, force: true });
|
||
|
} catch {
|
||
|
// NOTE: This is a workaround for windows
|
||
|
// we can't remove locked executables.
|
||
|
|
||
|
crawl({
|
||
|
dirPath: nodeModulesDirPath,
|
||
|
returnedPathsType: "absolute"
|
||
|
}).forEach(filePath => {
|
||
|
try {
|
||
|
fs.rmSync(filePath, { force: true });
|
||
|
} catch (error) {
|
||
|
if (filePath.endsWith(".exe")) {
|
||
|
return;
|
||
|
}
|
||
|
throw error;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|