1. 程式人生 > 實用技巧 >Node.js--npm

Node.js--npm

一、全域性安裝vs本地安裝: npm install xxx -g:屬於全域性安裝,將包安裝在C:\Users\admin\AppData\Roaming\npm\node_modules目錄下,同時在node_modules平級目錄生成批處理檔案,這樣可以在任何地方執行xxx的CIL命令。否則需要cd到專案的cmd命令所在目錄再執行/雙引號包含可執行命令的全路徑,很繁瑣。全域性安裝時的包不可以通過 require() 來引入。 npm install xxx –save-dev:屬於本地安裝,將包安裝在專案根目錄下的node_modules目錄下的.bin目錄下,生成對應的cmd命令,在專案根目錄下可以直接執行。可以通過 require() 來引入本地安裝的模組。
如果不安裝全域性包,則在pro目錄下是不能執行對應的命令列命令,必須cd到.bin目錄下,或者通過npm link命令或通過package.json的scripts欄位設定:
"scripts" : {
  "build" : "webpack ./entry.js bundle.js""deploy": "export NODE_ENV=production && `npm bin`/webpack --config webpack.config.production.js && npm start",
}
然後執行npm run build命令。
require()查詢檔案的順序 當require一個檔案模組時,先從當前執行檔案平級的的node_modules目錄中查詢;然後查詢上一級的node_modules目錄;依次迭代,直到根目錄下的node_modules目錄。如果還沒有查詢到指定模組的話,就會去NODE_PATH註冊的路徑中查詢。 require絕對路徑的檔案,查詢時不用去遍歷每一個node_modules目錄,其速度最快。 為什麼要全域性安裝和本地安裝兩次? 本地安裝可以讓每個專案依賴獨立的包,不受全域性包的影響,保證不同版本的包之間的相互依賴,可以通過require()使用引入的模組。是npm的預設安裝模式。 全域性安裝並不依賴引入的模組。它會在'C:\Users\admin\AppData\Roaming\npm'生成對應的cmd檔案,保證在任何地方都可以通過命令列執行該程式,不用cd到專案目錄執行。如全域性安裝gulp是為了在任何地方都可以執行gulp任務,本地安裝gulp則是為了呼叫gulp外掛的功能。
二、npm常用命令 1.安裝模組 npm install //安裝package.json中定義的所有依賴的包 npm install [<@scope>/]<name>@<version> //安裝指定版本的包,如不指定版本,預設安裝最新的包 alias: npm i options: -S|--save //儲存版本資訊到package.json檔案的dep欄位中 -D|--save-dev //儲存版本資訊到package.json檔案的devDep欄位中 npm install --production # 添加了production引數後將僅僅安裝package.json中dependencies 裡面的包,不會安裝devDependencies 裡的模組,否則get alldependencies&devDependenciesinstalled。一個模組不能同時在兩種環境中安裝。 2.解除安裝模組 npm uninstall <pkg> aliases: remove, rm, r, un, unlink options: -S|--save //刪除package.json中dev欄位對應的資訊 -D|--save-dev //刪除package.json中devDep欄位對應的資訊 3.更新模組 npm outdated [<pkg>] //列出所有過時的包 npm update [-g] [<pkg>...] //更新指定包到最新版本;如果未指定,則更新所有包,包括全域性和本地 a liases: up, upgrade options:同上 4.其他命令 npm config set registry https://registry.npm.taobao.org/ //切換映象 npm config get registry //檢視映象 npm config get prefix //獲取全域性模組安裝路徑; where node //獲取node所在路徑; npm <command> -h //檢視該命令的所有使用幫助資訊; npm view [email protected] [version|dependencies] //檢視遠端包內的package.json資訊 npm config ls –l //檢視npm內建的配置引數 npm install 或者 npm install –save-dev //自動將所在目錄的package.json中的模組安裝到node-modules資料夾下,不用一個一個安裝模組。 npm ls xxx [–depth=0] //檢視本地安裝的模組版本資訊,只看當前目錄,不遍歷子目錄。注意:子模組的devdependency依賴包不會被安裝,只安裝dep包。 三、cnpm 因為npm是從國外伺服器下載,經常出現異常,可以使用淘寶團隊開發的映象cnpm,cnpm跟npm用法一樣。 安裝命令:npm install cnpm -g --registry=https://registry.npm.taobao.org 1.create-react-app安裝模組慢,可以設定永久使用cnpm: $:npm configset registryhttps://registry.npm.taobao.org $: npm configset registryhttp://registry.npmjs.org   #官方地址 2.使用nrm管理registry地址: 1.安裝nrm:npm install -g nrm 2.註冊registry地址:   nrm add npm http://registry.npmjs.org   nrm add cnpm https://registry.npm.taobao.org 3.切換registry地址   nrm use npm/cnmp 3.依賴包版本管理 ~匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x的包,但是不包括1.3.0。 ^匹配最新的大版本依賴包,比如^1.2.3會匹配所有1.x.x的包,但是不包括2.0.0。