一、初步理解
3. 每個項目的根目錄下面,一般都有一個package.json文件,定義了這個項目所需要的各種模塊,以及項目的配置信息(比如名稱、版本、許可證等元數據)。npm install 命令根據這個配置文件,自動下載所需的模塊,也就是配置項目所需的運行和開發環境。
4. package.json文件可以手工編寫,也可以使用npm init命令自動生成。
{
"name": "kocla_test",
"version": "1.0.0",
}
2.scripts
指定了運行腳本命令的npm命令行縮寫,比如start指定了運行npm run start時,所要執行的命令。
下面的設置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時,所要執行的命令。
"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit/specs"
},
3 dependencies,devDependencies
dependencies和devDependencies兩項,分別指定了項目運行所依賴的模塊、項目開發所需要的模塊。它們都指向一個對象,該對象的各個成員,分別由模塊名和對應的版本要去組成,表示依賴的模塊及其版本范圍
--save參數表示將該模塊寫入dependencies屬性,
--save-dev表示將該模塊寫入devDependencies屬性。
"dependencies": {
"vue": "^2.2.2",
"vue-router": "^2.2.0"
},
"devDependencies": {
"autoprefixer": "^6.7.2",
"babel-core": "^6.22.1",
"babel-eslint": "^7.1.1",
"babel-loader": "^6.2.10",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.2.1",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chalk": "^1.1.3",
}
4、config字段
config字段用於向環境變量輸出值。
{
"name" : "foo",
"config" : { "port" : "8080" },
"scripts" : { "start" : "node server.js" }
}
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
},
6.bin
許多包有一個或多個可執行文件希望被安裝到系統路徑。在npm下要這么做非常容易(事實上,npm就是這么運行的)。
這需要在你的package.json中提供一個bin字段,它是一個命令名和本地文件名的映射。在安裝時,如果是全局安裝,npm將會使用符號鏈接把這些文件鏈接到prefix/bin,如果是本地安裝,會鏈接到./node_modules/.bin/。
比如,要使用myapp作為命令時可以這么做:
{ "bin" : { "myapp" : "./cli.js" } }
這么一來,當你安裝myapp,npm會從cli.js文件創建一個到/usr/local/bin/myapp的符號鏈接(這使你可以直接在命令行執行myapp)。
