(全局npmrc)nrm、npmrc、package-lock.json 的優先級


npmrc

測試 nrm、npmrc 的優先級

實驗

1. 沒有設置 nrm。

默認設置 registry 為 https://registry.npmjs.org/

下載的所有包都是通過以上域名獲取。

2. nrm use yarn。

設置 registry 為 https://registry.yarnpkg.com/。

看源碼可知實際做的事情是

npm.commands.config(['set', 'registry', registry.registry], function (err, data) {
    if (err) return exit(err);
    console.log('                        ');
    var newR = npm.config.get('registry');
    printMsg([
        '', '   Registry has been set to: ' + newR, ''
    ]);
})

    npm set registry 'https://registry.yarnpkg.com/'

效果為

    cat ~/.npmrc
    registry=https://registry.yarnpkg.com/

安裝結果是從 registry.yarnpkg.com 里面下包。

3. 本地使用 npmrc。

當前項目操作

    touch .npmrc

在 npmrc 里面填寫,

   vim .npmrc
    registry=https://registry.npm.taobao.org/

安裝結果是從 registry.npm.taobao.org 里面下包。

4. 使用本地 npmrc + nrm。

有本地 npmrc 的時候,執行
nrm ls
輸出的目錄是 npmrc 上設置的目錄。

5. 使用本地 npmrc + package-lock.json

這個分兩種情況。

  • 直接執行
    npm i
    將從 package-lock 中獲取文件的下載地址。

  • 如果執行的是
    npm i <package>
    將從 npmrc 中獲取下載地址,並更新 package-lock。

6. npm i chai –registry https://registry.yarnpkg.com/

效果與只使用
.npmrc
一致。

總結

.npmrc
的配置文件與
package-lock.json
的配置文件優先級是比較高的。
其次才是 nrm 的配置項。

nrm
其實是設置了 global 的 npmrc。項目下的 npmrc 肯定優先級更高一些。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM