概述
package.json
The best way to manage locally installed npm packages is to create a package.json file.
A package.json must have:
- “name”
- all lowercase
- one word, no spaces
- dashes and underscores allowed
- “version”
- in the form of x.x.x
- follows semver spec
{
"name": "my-package",
"version": "1.0.0"
}
創建 package.json
npm init
// 創建一個默認的 package.json
npm init -y
package.json 中相關屬性如下所示:
- name: 當前目錄名稱
- version: 總是1.0.0
- dependencies: These packages are required by your application in production.
- devDependencies: These packages are only needed for development and testing.
項目對模塊的依賴可以使用下面的 3 種方法來表示(假設當前版本號是 1.1.0 ):
- 兼容模塊新發布的補丁版本:~1.1.0、1.1.x、1.1
- 兼容模塊新發布的小版本、補丁版本:^1.1.0、1.x、1
- 兼容模塊新發布的大版本、小版本、補丁版本:*、x
config
// 如:key=registry,設置地址
npm config set <key> <value>
// 設置淘寶npm地址
npm config set registry http://registry.npm.taobao.org/
// 如:key=registry,默認地址:https://registry.npmjs.org/
npm config get <key>
// 顯示所有配置
npm config list
// 打開配置文件
npm config edit
npm config ls -l
修改全局安裝包路徑
npm config set prefix "E:\xxx\npm-global"
npm config set cache "E:\xxx\npm-cache"
install
安裝npm包分兩種:
- 本地安裝:自己模塊依賴於某個包。
- 全局安裝
// 本地安裝,在當前的目錄下創建一個 node_modules 的目錄
npm install <package_name>
// 全局安裝
npm install -g <package_name>
// -S, --save 安裝包信息將加入到dependencies(生產階段的依賴)
npm install <package_name> -S
// -D, --save-dev 安裝包信息將加入到devDependencies(開發階段的依賴)
npm install <package_name> -D
本地安裝後包的文件目錄在哪?
上述命令執行之後將會在當前的目錄下創建一個 node_modules
的目錄(如果不存在的話),然後將下載的包保存到這個目錄下。
全局安裝後包的文件目錄在哪?
默認的安裝路徑爲C:\Users\xxx\AppData\Roaming\npm
,緩存路徑爲C:\Users\xxx\AppData\Roaming\npm_cache
,其中xxx根據自己是自己系統的用戶名。
會安裝哪個版本的包?
本地目錄中如果沒有 package.json
這個文件的話,那麼最新版本的包會被安裝。
如果存在 package.json
文件,則會在 package.json
文件中查找針對這個包所約定的語義化版本規則,然後安裝符合此規則的最新版本。
uninstall
// 刪除 node_modules 目錄下面的包
npm uninstall <package_name>
// 從 package.json 文件中刪除依賴,需要在命令後添加參數 --save
npm uninstall --save <package_name>
npm uninstall --save-dev <package_name>
// 全局卸載
npm uninstall -g <package_name>
root
// 輸出 node_modules 的路徑
npm root [-g]
update
npm update -g <package_name>
淘寶npm鏡像
npm install -g cnpm --registry=https://registry.npm.taobao.org
可以使用cnpm替換npm