我正在尝试部署一个Web项目,为此,在构建它之前,我需要清除该dist文件夹.
当然我可以添加一个可以运行的脚本,rm -rf dist/*但是一些Windows用户将无法运行它.
是否有一些npm包会删除带有命令的文件夹?
Maa*_*ope 16
npm install --save-dev del-cli
"scripts": {
"delete": "del-cli --force ../folder-to-delete"
}
Run Code Online (Sandbox Code Playgroud)
当您要删除父文件夹时请注意“--force”
Rya*_*Zim 10
您可以使用rimraf:https://github.com/isaacs/rimraf.
请注意,如果您使用包含globstar(**)的globs ,则必须对它们进行双引号.Unix系统默认不支持globstar,但rimraf会为你扩展它们.Windows不支持单引号,因此无法使用.请记住,必须使用a在JSON中转义双引号\.
最近,我面临着与您一样的挑战,就像用户Kevin Kevin在上面的评论中所说的那样,我对不仅仅是“使用此npm软件包”的解决方案感兴趣。因此,我将其扔在这里,希望有人会发现它有用。
因此,我所做的就是获取在StackOverflow中找到的一些代码,将其放在.js文件中,并将其绑定到package.json中的npm脚本中。在我的情况下,目标是删除编译.ts脚本的“ / out”文件夹,但可能性无穷!
使用此解决方案,您只需使用“ npm run cleanstart”启动应用程序。
package.json
{
"name": "my_app",
"version": "1.0.0",
"main": "main.js",
"scripts": {
"tsc": "tsc",
"precleanstart": "node clean.js",
"cleanstart": "npm start",
"prestart": "npm run tsc",
"start": "node out/main.js"
},
"dependencies": {
"@babel/runtime": "^7.0.0-beta.54",
"babel-runtime": "^6.26.0",
"body-parser": "^1.18.3",
"express": "^4.16.3",
"typescript": "^3.0.3"
}
}
Run Code Online (Sandbox Code Playgroud)
clean.js
var fs = require('fs');
function deleteFolderRecursive(path) {
if (fs.existsSync(path) && fs.lstatSync(path).isDirectory()) {
fs.readdirSync(path).forEach(function(file, index){
var curPath = path + "/" + file;
if (fs.lstatSync(curPath).isDirectory()) { // recurse
deleteFolderRecursive(curPath);
} else { // delete file
fs.unlinkSync(curPath);
}
});
console.log(`Deleting directory "${path}"...`);
fs.rmdirSync(path);
}
};
console.log("Cleaning working tree...");
deleteFolderRecursive("./out");
console.log("Successfully cleaned working tree!");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21670 次 |
| 最近记录: |