# 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…

相關文章
相關標籤/搜索