npm 配置
- 優先級從高到低介紹
- 命令行標記
--foo bar
- 設置foo配置的值為bar
- 如果foo標簽后面沒有寫bar, 默認則是true
-
-flag1 --flag2 -- bar
設flag1,flag2為true, bar則作為命令行參數傳入
- 環境變量
- 任何以
npm_config_
開頭的環境變量都會被視為npm的配置參數 - 環境變量忽略大小寫,因此也可以是
NPM_CONFIG_
- 任何以
- npmrc文件
- 默認配置
-
npm config ls -l
可查看所有的配置信息 -
npm config -g(--global)
查看指定的配置項的值 -
npm config -gpld
復合命令等價于npm ls --global --parseable --long --loglevel info
-
-
package.json
配置項config
script
,當運行npm時,package中的配置將會覆蓋環境中對應的參數配置 -
npm owner ls <pkgname>
查看包的所有者信息,在npm上注冊的所有包都可查
npm package-lock.json
- package-lock.json不能被發布到npmjs.com
- 當package下同時存在package-lock.json和npm-shrinkwrap.json時,package-lock.json將會被忽略。
- package-lock出現原因
- 不同的npm版本對包樹結構的生成算法不同
- 當前依賴的包已經發布了新的版本
-當前依賴的包的依賴已經發布了新的版本 - package-lock.json是當 node_modules 或 package.json 發生變化時自動生成的文件。這個文件主要功能是確定當前安裝的包的依賴,以便后續重新安裝的時候生成相同的依賴,而忽略項目開發過程中有些依賴已經發生的更新。
4.npm-shrinkwrap.json 指的是可發布的lock文件(在開發階段依賴穩定后使用)
- shrinkwrap計算時是根據當前依賴安裝的目錄結構生成的。使用前最好做一次依賴清理與重新安裝
npm shrinkwrap
npm shrinkwrap--dev//將dev-dependencies計算在內