npm—小記

一枚菜鳥,實習不久,一次幫別人的安裝前端項目環境時,遇到不少坑。因爲以前沒有對npm有太多瞭解,因此此次打算整理梳理一下。html


NPM——Node 的模塊管理器前端

NPM 安裝vue

新版的node.js已經集成了npm.,若是安裝了node(node安裝教程),就無需再安裝npm了。node

npm -v  //查看npm版本

1、npm install  (縮寫 npm i)(PS: 由於我用的是windows,全部有時在git bash下安裝 npm install 時,會好久也不會安裝,建議在windows自帶的命令框安裝比較好)react

npm install <Module Name>   //此時爲本地安裝

效果: 將安裝包放在 ./node_modules 下(運行npm命令時所在的目錄),若是沒有node_modules目錄,會在當前執行npm命令的目錄下生成node_modules目錄git

過程:npm install    會先檢查node_modules 目錄之中是否已經存在指定模塊。若是存在,就再也不從新安裝了,即便遠程倉庫已經有了一個新版本,也是如此。github

假設:若是但願,一個模塊不論是否安裝過,npm 都要強制從新安裝, 可使用-f--force參數。npm

npm install –f <Module Name>
或者
npm install <Module Name> --force

 全局安裝:json

npm install <Module Name> -g #全局安裝
或者
npm install -g <Module Name> 

 本地安裝和全局安裝區別:windows

本地安裝 全局安裝

1.將安裝包放在 ./node_modules 下(運行npm命令時所在的目錄),

若是沒有node_modules 目錄,會在當前執行npm命令的目錄下生成node_modules目錄

1.安裝包放在 /user/local下或者 你 node的安裝目錄
2.能夠經過require()來引入本地安裝包 2.能夠直接在命令行裏使用
3. package.json會被下載到當前所在目錄,安裝的模塊會在 node_modules裏面

3.package會被下載到特定的系統目錄下,安裝的package可以在所

有目錄下使用。

 

不一樣狀況下的安裝:

1. 安裝當前目錄 package.json文件中配置的devDependencies模塊

npm install 

2.安裝本地的模塊文件

npm install  ../package.tgz

3. 安裝指定URL的模塊

npm install https://github.com/indexzero/。。。。

4.安裝本地文件系統中指定目錄包含的模塊

npm install <folder>

5.安裝並更新package.json 中的版本配置

npm install <name> [–save|–save-dev|–save-optional]

  • 添加–save 參數安裝的模塊的名字及其版本信息會出如今package.json的dependencies選項中

  • 添加–save-dev 參數安裝的模塊的名字及其版本信息會出如今package.json的devDependencies選項中

  • 添加–save-optional 參數安裝的模塊的名字及其版本信息會出如今package.json的optionalDependencies選項中

6.安裝模塊的指定版本

npm install <name>@<version>     npm install underscore@1.5.2

7.安裝模塊指定版本號範圍內的某一個版本

npm install <name>@<version range>    npm install async@」>=0.2.0 <0.2.9″

註明: 若是項目路徑中有package.json文件時,直接使用npm install 方法就能夠根據dependecies配置安裝全部的依賴包。

 

2、 卸載 npm uninstall

卸載某一個模塊,npm uninstall <Module Name>

在安裝環境時,有時會刪除所有的安裝模塊,這是能夠刪去 node_modules 文件夾,而後再 npm install  從新安裝

若輸入命令行的話,能夠以下:

 rm -rf node_modules
 npm install 

3、 更新  npm update

若更新已安裝的模塊:

npm update [-g] [<name> [<name> … ]

它會先到遠程倉庫查詢最新版本,而後查詢本地版本。若是本地版本不存在,或者遠程版本較新,就會安裝。

-g 參數會更新全局安裝的模塊。 若是沒有指定name,且不是在某個模塊內,會更新當前目錄依賴的全部包都會更新;若當前目錄在某個模塊內,只更新該模塊依賴的模塊。

原理: npm update 命令怎麼知道每一個模塊最新版本?

npm 模板倉庫提供了一個查詢服務registry。在https://registry.npmjs.org/ 後面跟上模塊名,會獲得json對象,裏面是該模塊因此版本信息。

例如:https://registry.npmjs.org/vue 後面加入版本,例如 https://registry.npmjs.org/react/v0.14.6 ,可查看 React 的 0.14.6 版

4、查看安裝信息

npm list -g    //查看全部全局安裝的模塊
npm list grunt  //查看grunt模塊的版本號

npm ls //列出當前安裝的了全部包 通常是到 /node_modules/目錄下查看包是否還存在

npm ls grunt // 查看特定包具體信息

5、卸載

npm uninstall  <Module Name>

6、搜索模塊

npm search <Module Name>

7、建立模塊  

package.json 文件是別不可少的,可使用npm生成package.json 文件

npm init   //根據提示,輸入,在最後輸入「yes」後會生成package.json文件

8、其餘命令

npm help //可查看全部命令

npm help <command> //可查看某條命令的詳細幫助 npm help install

package.json 說明

npm命令運行時會根據當前目錄的package.json文件進行。相應的關鍵字含義以下所示:

name——應用名稱
description——應用描述
keywords—— 關鍵字
version —— 版本號
config——應用的配置項
homepage——主頁
author——做者
repository——資源倉庫地址
bugs——bug 提交地址
licenses——受權方式
directories——目錄
main——應用入口文件
bin——命令行文件
dependencies——應用依賴模塊
devDependencies ——開發環境依賴模塊
engine——運行引擎
scripts——腳本

本身混淆點——dependencies and devDependencies

1. dependencies 應用依賴模塊  別人要使用這個package,至少須要安裝哪些東西。 它會在安裝時安裝到當前模塊的node_modules 目錄下。

2. devDependencies 開發環境依賴模塊  它主要是在開發環境中用到的依賴模塊。用命令npm的命令install 或 link 加上參數  —dev 安裝到當前模塊的node_modules目錄下。

版本號

npm 採用語義化版本識別

例子:0.4.1

主版本(0)當你作了不兼容的API修改

次版本(4)當你作了向下兼容的功能性新增

修訂版本(1)當你作了向下兼容的問題修正

npm 腳本問題

實習中使用 npm run stage,主要是利用了 npm 腳本

它主要就是指 package.json 文件 使用 script字段 定義腳本命令

{
  "name": "Test Project",
  "devDependencies": {
    "eslint": "^1.10.3"
  },
  "scripts": {
    "lint": "eslint ."
  }
}

運行 npm run lint ,會自動執行 ./node_modules/.bin/elint

若是直接運行 npm run 不給出任何參數,就會列出 scripts 屬性下全部的命令

相關文章
相關標籤/搜索