如何清理(删除内容)文件夹与npm [已关闭]

xfb7svmp  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(139)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求书籍、工具、软件库等的建议。您可以编辑问题,以便使用事实和引文来回答。
两年前就关门了。
Improve this question
我正在尝试部署一个Web项目,但在部署build之前,我需要清除/删除dist文件夹。
我可以添加一个脚本,将运行rm -rf dist/*,但这将不会在Windows系统上工作。
有没有一些npm软件包u其他解决方案,允许删除一个文件夹的命令,在每一个操作系统的工作?

mkshixfv

mkshixfv1#

您可以使用rimrafhttps://github.com/isaacs/rimraf
请注意,如果您使用的是包含globstar(**)的globs,您 * 必须 * 将它们用双引号括起来。Unix系统并不是所有都默认支持globstar,但是rimraf会为您展开它们。Windows不支持单引号,因此不能使用单引号。请记住,在JSON中双引号必须用\转义。

k3bvogb1

k3bvogb12#

最近我也面临着和你一样的挑战,就像用户Kevin Brown在上面的评论中所说的那样,我对一个解决方案很感兴趣,而不仅仅是“使用这个npm包”。所以我把这个放在这里,希望有人会发现它有用。
因此,我所做的是将我在StackOverflow中找到的一些代码放在一个.js文件中,并将其绑定到我的package.json中的一个npm脚本。在我的例子中,目标是删除“/out”文件夹,.ts脚本将编译到该文件夹中,但可能性是无限的!
有了这个解决方案,你只需要用“npm run cleanstart”启动你的应用程序。

软件包.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"
    }
}

清理.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!");
bwntbbo3

bwntbbo33#

npm install --save-dev del-cli 

"scripts": {
    "delete": "del-cli --force ../folder-to-delete"
}

当您要删除父文件夹时,请注意“--force

llycmphe

llycmphe4#

我今天发现了这个:
npm i clean-webpack-plugin --save-dev

plugins: [
    ...
    new CleanWebpackPlugin(['dist'])
 ]

仅供参考:https://www.npmjs.com/package/clean-webpack-plugin

相关问题