如何清洁与NPM一个包文件?

问题描述 投票:1回答:2

我怎样才能与NPM脚本删除文件(bundle.js)的内容,以便运行npm run cleanbundle.js后,也可以只是一个空文件.js

npm npm-scripts
2个回答
0
投票

bash

如果你只打算支持bash环境然后定义在clean命名package.json脚本如下图所示:

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

以上只是echo是一个空字符串使用bash的echo命令文件。


Windows

如果只打算支持Windows环境中,(即,经由cmd.exe的或Powershell的例如运行),然后改变npm-script如下:

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

同样,这次我们也echo一个空字符串的文件,但是这次我们使用windows的/ CMD echo命令。

注意:后故意冒号(echo


Cross-platform

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

如果您需要解决跨平台工作,我猜你可能,再考虑编写自定义的node.js的实用程序脚本,并通过npm-scripts调用它。

下面显示了如何可以做到这一点:

clean.js

var fs = require('fs');

if (process.argv.indexOf('-p') !== -1) {
  var filePath = process.argv[process.argv.indexOf('-p') + 1];
  fs.writeFileSync(filePath, '');
}

clean.js可以保存到你的项目的根目录名为.scriptsscriptspackage.json部分配置如下一个隐藏的文件夹:

...
"scripts": {
  "clean": "node .scripts/clean -p path/to/bundle.js"
},
...

Additional Notes

  1. 在所有三个例子npm-script读取path/to/bundle.js将需要被重新定义的所需要的路径的上方要旨。
  2. 要清除bundle.js的内容运行通过您的CLI如下:

$ npm run clean


0
投票

故宫包rimraf和触摸都可以在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命令(其是CLI触摸的一部分)创建空文件。 请参阅:https://www.npmjs.com/package/touch#cli

&&运营商有效地运行两个命令(在技术上,它做布尔AND这意味着第二个命令,如果第一个命令失败,将不执行)。

© www.soinside.com 2019 - 2024. All rights reserved.