Node 之NPM介紹

 NPM是Node.js的包管理工具,Node.js與NPM的關係密不可分的node

NPM經常使用的命令:git

驗證npm是否安裝:github

 

一、npm -v,npm versionnpm

   經過輸入npm-v命令或者npm version 命令查看NPM的安裝版本,如圖所示:json

 

2.npm init工具

    經過 npm init命令能夠生成一package.json文件。這個文件是整個項目的描述文件。經過這個文件能夠清楚地知道項目包的依賴關係、版本、做者等信息,每一個NPM包都有本身的package.json文件,使用這個命令須要填寫項目名、版本號、做者等信息,具體以下圖所示:ui

package.json:lua

{ "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "underscore": "^1.9.1" } }

 

 

在圖中咱們能夠看出,在填完這些信息後,能夠看到文件夾中多了一個package.json文件。固然,若是讀者不想填寫這些內容,也能夠在這條命令以後添加參數-y或者-yes,這樣系統將會使用默認值生成package.json文件,url

npm init -yspa

npm init  -yes

 

三、 npm install

     經過npm install 命令安裝包,如安裝underscore這個包(underscore是一個強大的JavaScript工具庫,使用這個庫能夠大大提升開發的效率)

 

 從圖中能夠發現當執行該命令後文件夾中多了一個名爲node-module的文件夾(用來存放安裝包的文件夾),該文件夾的內容:

 

 

      在安裝包的時候一樣能夠在命令的後面添加--save或者-S參數,這樣安裝包的信息將會記錄在package.json文件的dependencies字段中,這樣將能夠很方便地管理包的依賴關係:

"dependencies": { "underscore": "^1.9.1" }

 

 

      當不須要使用某個包時,能夠運行npm uninstall命令來卸載這個包

 

 

package.json文件

     package.json提供包描述的文件。一個包是一個文件夾,文件夾中的package.json文件以json格式存儲該包的相關的描述,好比上方咱們安裝的underscore的package.json文件的部份內容:

"author": { "name": "Jeremy Ashkenas", "email": "jeremy@documentcloud.org" }, "bugs": { "url": "https://github.com/jashkenas/underscore/issues" }, "bundleDependencies": false, "deprecated": false, "description": "JavaScript's functional programming helper library.", "devDependencies": { "coveralls": "^2.11.2", "docco": "*", "eslint": "1.10.x", "gzip-size-cli": "^1.0.0", "karma": "^0.13.13", "karma-qunit": "~2.0.1", "nyc": "^2.1.3", "pretty-bytes-cli": "^1.0.0", "qunit": "^2.6.0", "qunit-cli": "~0.2.0", "uglify-js": "3.3.21" }, "files": [ "underscore.js", "underscore-min.js", "underscore-min.js.map" ], "homepage": "http://underscorejs.org", "keywords": [ "util", "functional", "server", "client", "browser" ], "license": "MIT", "main": "underscore.js", "name": "underscore", "repository": { "type": "git", "url": "git://github.com/jashkenas/underscore.git" }, "scripts": { "build": "npm run minify -- --source-map --source-map-url \" \" -o underscore-min.js", "coverage": "nyc npm run test-node && nyc report", "coveralls": "nyc npm run test-node && nyc report --reporter=text-lcov | coveralls", "doc": "docco underscore.js", "lint": "eslint underscore.js test/*.js", "minify": "uglifyjs underscore.js -c \"evaluate=false\" --comments \"/ .*/\" -m", "test": "npm run lint && npm run test-node", "test-browser": "npm i karma-phantomjs-launcher && karma start", "test-node": "qunit-cli test/*.js", "weight": "npm run minify | gzip-size | pretty-bytes" }, "version": "1.9.1" }

如下對主要的字段進行說明:

  • Name:包的名字
  • Respository:包存放的倉庫地址
  • Keywords:包的關鍵字,有利於別人經過搜索找到你的包。
  • License:遵循的協議
  • Maintainers:包的維護者
  • Author:包的做者
  • Version:版本號,遵循版本命名的規範
  • Dependencies:包依賴的其它包
  • devDependencies:包開發階段所依賴的包
  • homepage:包的官方主頁

 

字段的解釋說明讀者能夠在該網址得到更多的瞭解:https://docs.npmjs.com/files/package.json