1、初步理解javascript
3. 每一個項目的根目錄下面,通常都有一個package.json文件,定義了這個項目所須要的各類模塊,以及項目的配置信息(好比名稱、版本、許可證等元數據)。npm install 命令根據這個配置文件,自動下載所需的模塊,也就是配置項目所需的運行和開發環境。html
4. package.json文件能夠手工編寫,也可使用npm init命令自動生成。vue
{ "name": "kocla_test", "version": "1.0.0", }
2.scriptsjava
指定了運行腳本命令的npm命令行縮寫,好比start指定了運行npm run start時,所要執行的命令。node
下面的設置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時,所要執行的命令。 vue-router
"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,devDependenciesnpm
dependencies和devDependencies兩項,分別指定了項目運行所依賴的模塊、項目開發所須要的模塊。它們都指向一個對象,該對象的各個成員,分別由模塊名和對應的版本要去組成,表示依賴的模塊及其版本範圍json
--save參數表示將該模塊寫入dependencies屬性,
--save-dev表示將該模塊寫入devDependencies屬性。babel
"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", }
config字段用於向環境變量輸出值。app
{ "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)。