如何用npm清理包文件?

时间:2017-10-05 13:52:31

标签: npm npm-scripts

如何使用npm脚本删除文件(bundle.js)的内容,以便在运行npm run cleanbundle.js只是一个空的.js文件?

2 个答案:

答案 0 :(得分:0)

的bash

如果您只打算支持bash个环境,请在clean中定义名为package.json的脚本,如下所示:

...
"scripts": {
  "clean": "echo > path/to/bundle.js"
},
...

以上简单echo是使用 bash&#39> echo命令的文件的空字符串。

如果您只打算支持Windows个环境(例如,通过 cmd.exe Powershell运行),请更改{{1}如下:

npm-script

同样,这次我们还... "scripts": { "clean": "echo: > path/to/bundle.js" }, ... 为文件的空字符串,但这次我们使用 windows' s / cmd echo命令。

请注意echo

之后的故意冒号(:

跨平台

不幸的是 bash 解决方案不会在 Windows 上运行,反之亦然(...这是因为需要不同的echo语法)。

如果您需要跨平台工作的解决方案,我想您可能会这样做,那么请考虑编写自定义 node.js 实用程序脚本并通过echo调用它。

以下说明了如何实现这一目标:

<强> clean.js

npm-scripts

var fs = require('fs'); if (process.argv.indexOf('-p') !== -1) { var filePath = process.argv[process.argv.indexOf('-p') + 1]; fs.writeFileSync(filePath, ''); } 可以保存到项目根目录中名为clean.js的隐藏文件夹中,并在.scripts的{​​{1}}部分进行配置,如下所示:

scripts

附加说明

  1. 在上述所有三个示例package.json中,需要重新定义读取... "scripts": { "clean": "node .scripts/clean -p path/to/bundle.js" }, ... 的路径所需的内容。

  2. 要清除npm-script的内容,请通过CLI运行以下内容:

  3. path/to/bundle.js

答案 1 :(得分:0)

npm软件包 rimraf touch 均可在scripts中用于命令行使用。

首先在本地安装到您的项目中

$ npm install --save-dev rimraf touch

然后将clean脚本添加到您的 package.json 文件中:

"scripts": {
   "clean": "rimraf dist/bundle.js && nodetouch dist/bundle.js",
}

要使用脚本:

$ npm run clean

rimraf 命令(以rm -rf命名)删除文件。
参见:https://www.npmjs.com/package/rimraf#cli

nodetouch 命令( touch 的cli部分)创建空文件。
参见:https://www.npmjs.com/package/touch#cli

&&运算符有效地运行了两个命令(从技术上讲,它执行的是布尔值 AND ,这意味着如果第一个命令失败,第二个命令将不会执行)。