npm install --save 或
npm install -S
npm install --save-dev
npm install -D
npm install jquery --save-optional 或 npm install jquery -O 以安裝jquery爲例,pack.json的文件中optionalDependencies字段有如下代碼 "optionalDependencies": { "jquery": "^3.9.1" }
npm install jquery --save-exact 或 npm install jquery -E 若是輸入命令爲 npm install jquery -ES 留意package.json 文件的 dependencies 字段,以看出版本號中的^消失了 "dependencies": { "jquery": "3.2.1" }
npm install
輸入該命令後,package.json的devDependencies字段裏的插件會被自動安裝到node_modules下
npm uninstall jquery --save-optional//卸載可選階段的依賴裏的jquery`
npm目前支持一下幾種依賴包管理:node
depedencies:指定應用依賴的外部包,這些依賴是應用正常發佈後正常執行所須要的,但不包含測試時和本地打包時所使用的包 devDependencies:它裏面的包只用於開發環境,不用於生產環境,這些包一般是單元測試或者打包工具等,例如gulp, grunt, webpack, moca, coffee等 peerDependencies:同等依賴,或者叫同伴依賴,用於指定當前包(也就是你寫的包)兼容的宿主版本。如何理解呢? 試想一下,咱們編寫一個gulp的插件,而gulp卻有多個主版本,咱們只想兼容最新的版本,此時就能夠用同等依賴(peerDependencies)來指定: { "name": "gulp-my-plugin", "version": "0.0.1", "peerDependencies": { "gulp": "3.x" } } 當別人使用咱們的插件時,peerDependencies就會告訴明確告訴使用方,你須要安裝該插件哪一個宿主版本。 一般狀況下,咱們會在一個項目裏使用一個宿主(好比gulp)的不少插件,若是相互之間存在宿主不兼容,在執行npm install時,cli會拋出錯誤信息來告訴咱們,好比:
npm ERR! peerinvalid The package gulp does not satisfy its siblings' peerDependencies requirements!
npm ERR! peerinvalid Peer gulp-cli-config@0.1.3 wants gulp@~3.1.9
npm ERR! peerinvalid Peer gulp-cli-users@0.1.4 wants gulp@~2.3.0
運行命令npm install gulp-my-plugin –save-dev來安裝咱們插件,咱們來看下依賴圖譜:
├── gulp-my-plugin@0.0.1
└── gulp@3.9.1jquery
{ "name": "fe-weekly", "description": "ELSE 週刊", "version": "1.0.0", "main": "index.js", "devDependencies": { "fw2": "^0.3.2", "grunt": "^1.0.1", "webpack": "^3.6.0" }, "dependencies": { "gulp": "^3.9.1", "hello-else": "^1.0.0" }, "bundledDependencies": [ "fw2", "hello-else" ] }
執行打包命令npm pack, 在生成的fe-weekly-1.0.0.tgz包中,將包含fw2和hello-else。 可是值得注意的是,這兩個包必須先在devDependencies或dependencies聲明過,不然打包會報錯。