在 npm 脚本中使用 rm -r folder_name/* 删除文件夹的内容会出现“没有这样的文件夹或目录”错误

axm*_*m__ 3 shell node.js npm

当我尝试通过运行npm run clean(下面的代码)使用 npm 清理文件夹时,出现以下错误:

rm: 无法删除“lib/*”: 没有那个文件或目录

在我的 package.json 中,我使用了以下脚本:

{
    "scripts": {
        "clean": "rm -r lib/*",
        "show": "ls lib/*"
    }
}
Run Code Online (Sandbox Code Playgroud)

我绝对确定该文件夹存在。我试过在lib路径周围使用单引号。我知道 glob 扩展正在起作用:npm run show效果很好。

我不想像这里建议的那样添加任何依赖项,例如 rimraf 。我也不关心 Windows 支持。我知道我可以使用rm -r lib && mkdir libwhich 有效。我最感兴趣的是为什么rm -r lib/*会出现错误。有人可以帮我吗?

npm 版本: 5.5.1

节点版本: 8.9.3

小智 7

你确定你的 lib 文件夹不是空的吗?

rm -r somedir/*
Run Code Online (Sandbox Code Playgroud)

在空目录上运行时出现此错误,因为“*”不存在,因为目录为空。

如果要删除 lib 文件夹本身,则必须键入 rm -r lib


Ale*_*oya 5

使用 rimraf:在 Node.js 中运行 unix 命令 rm -rf

npm i rimraf -D
Run Code Online (Sandbox Code Playgroud)

然后在你的脚本中写下

"scripts": {
    "delete:folder": "rimraf lib/*",
}
Run Code Online (Sandbox Code Playgroud)