# NPM Script 快速入门

NPM也提供了自动化的工具,虽然有点初级,可是不少时候够用,而且不须要学习 Grunt 这样的任务自动化工具,减掉一个额外的学习负担。npm

假设咱们使用它来作js文件的混淆,咱们须要以下组件:json

uglify-es
复制代码

首先安装在继续学习前,你须要先将它安装到环境中:app

npm install --save-dev uglify-es
复制代码

项目练手

假定你有一个项目,应该有一个配置好package.json,咱们可使用以下命令生成此文件:工具

npm init -y
复制代码

NPM使用文件package.json内的script部分键来描述自动化工具执行,像是这样:学习

"scripts": {
  "mangle": "mkdir -p dist/js && uglifyjs src/*.js -m --mangle-props -c toplevel -o dist/app.js"
}
复制代码

咱们生成一个测试用文件:测试

touch src/action.jsthis

咱们就是生成此文件的对应压缩文件。内容以下:spa

var x = {
    baz_: 0,
    foo_: 1,
    calc: function() {
	        return this.foo_ + this.baz_;
    }
};
x.bar_ = 2;
x["baz_"] = 3;
console.log(x.calc());
复制代码

执行效果和分析说明

如今,你只须要执行以下命令,便可生产压缩的JS文件了:code

npm run mangleip

你会发现此压缩文件已经放置到dist目录以内。可使用任何文本工具查看文件内容,好比这样:

cat dist/app.js
复制代码

输出是这样的:

var x={o:0,t:1,_:function(){return this.t+this.o},i:2,o:3};console.log(x._())
复制代码

在package.json内部的script指定的任何一个键(这里是mangle),均可以把它做为参数传递为npm run,做为一个命令使用。

npm run mangle
复制代码

内部执行实际上是使用了链接符号&&链接起来的两个命令,&&表示前一个执行成功才会执行下一个命令,不然就中止继续执行。命令:

mkdir -p dist
复制代码

建立一个目录,参数-p说明没有没有的话就建立,有了就没必要建立了。命令:

uglifyjs src/*.js -m -c  -o dist/app.js
复制代码

执行文件压缩。参数-m表示压扁 -c表示压缩,-o指定目标文件。

ref: www.npmjs.com/package/ugl…

相关文章
相关标签/搜索