如何在构建之前使用npm删除文件夹

Pal*_*tro 0 javascript node.js npm webpack package.json

我有一个脚本, "build": "rimraf dist webpack --progress --config webpack/prod.js", 但是实际上,它不是删除dist而是删除webpack文件夹中的所有文件。但是我只需要删除dist

Structure:
 -dist
 -webpack
     -somefiles.js
Run Code Online (Sandbox Code Playgroud)

Nir*_*rus 7

快速、简单的跨平台解决方案。不需要任何图书馆

[+] 从评论中更新 -处理错误并打印到控制台

添加使用node.js api通过内联执行执行的package.json脚本

package.json在脚本中添加以下代码

{
  ...
  "scripts": {
     "rmdir": "node -e \"var fs = require('fs');process.argv.slice(1).map((fpath)=>{ try {fs.rmdirSync(fpath,{recursive: true})} catch(e){console.warn('Error folder:', fpath, e)}});process.exit(0);\"",
  }

}
Run Code Online (Sandbox Code Playgroud)

然后在命令窗口执行如下

npm run rmdir -- folder1 folder2
Run Code Online (Sandbox Code Playgroud)

  • 如果提供的路径无效(示例情况:如果目录不存在),脚本将给出运行时错误。为了克服这个问题,更新的脚本是“rmdir”:“node -e \”var fs = require('fs'); try{process.argv.slice(1).map((fpath) => fs.rmdirSync(fpath, { recursive: true }))}catch(err){console.log(`没有找到Dist`)}; 进程.退出(0);\"" (2认同)

luk*_*eke 5

Npm脚本与直接在bash中运行命令基本相同。就您而言,您正在运行rimraf dist webpack,这意味着webpack是rimraf的参数。要分隔命令,可以使用,;或者&如果要在运行第二个命令之前确保第一个命令成功运行,&& 那么您的脚本应如下所示。

rimraf dist && webpack --progress --config webpack/prod.js