上海商城網(wǎng)站建設搜狐綜合小時報2022113011
文章目錄
- 1. 文章引言
- 2. 簡述.npmrc
- 3. 配置.npmrc
- 3.1 .npmrc配置文件的優(yōu)先級
- 3.2 .npmrc設置的命令行
- 3.3 如何設置.npmrc
- 4. 配置發(fā)布組件
- 5. npm常用命令
- 6. 重要備注
- 6.1 yarn
- 6.2 scope命名空間
- 6.3 鏡像出錯
1. 文章引言
今天在某低代碼平臺開發(fā)項目時,看到如下編譯配置的彈出框:
注意紅框中的.npmrc
這個詞,它是什么意思呢,以及如何設置.npmrc
呢?
接下來,我便詳細解說.npmrc
這個詞,以及如何設置.npmrc
。
2. 簡述.npmrc
.npmrc
可以理解成npm running cnfiguration
,即npm
運行時配置文件。
簡單點說,.npmrc
可以設置package.json
中依賴包的安裝來源,即從哪里下載依賴包。
3. 配置.npmrc
3.1 .npmrc配置文件的優(yōu)先級
一般情況下,我們的電腦中有多個.npmrc
文件,我們在安裝包時,npm
按照如下順序讀取這些配置文件:
-
項目配置文件:
/project/.npmrc
-
用戶配置文件:
~/.npmrc
我們可以通過如下命令,來獲取.npmrc用戶配置文件
路徑:
npm config get userconfig
如果想恢復默認配置,只需要將用戶配置文件~/.npmrc
刪除即可。
- 全局配置文件:
$PREFIX/etc/npmrc
我們可以通過如下命令,來獲取.npmrc 全局配置文件
路徑$PREFIX
:
npm config get prefix
【注意】如果你不曾配置過全局文件,該文件不存在。
npm
內(nèi)置配置文件/path/to/npm/npmrc
我們可以通過如下命令,獲取npmrc
在npm
的路徑:
which npm
與npm
同級別, 使用which npm
獲取npm
的路徑。
3.2 .npmrc設置的命令行
在講解如何設置.npmrc
之前,我們需要了解設置文件的命令行。
我們一般使用key-value
的方式來設置文件,如下所示:
npm config set key value
例如,設置倉庫信息,可以使用下述命令行:
npm config set registry https://repo.huaweicloud.com/repository/npm/
3.3 如何設置.npmrc
- 設置項目配置文件
項目下.npmrc
文件的優(yōu)先級最高,可以給每個項目配置不同的鏡像,項目之間的配置互不影響。
在項目的根目錄下新建.npmrc
文件,在里面以key=value
的格式進行配置。
registry=https://registry.npm.taobao.org
也可以指定特殊的命名空間(scope)
的來源。
比如,以@testNpmRc
開頭的包從registry=https://npm.xx.com
這里下載,其余全去淘寶鏡像下載。
registry=https://registry.npm.taobao.org/
@testNpmRc:registry = https://npm.xx.com
- 設置用戶配置文件
可以直接通過如下命令:
npm config get userconfig
找到用戶配置文件的路徑,直接仿照上述方法修改該文件。
當然,也可以通過npm config set
命令繼續(xù)設置,如下所示:
npm config set registry https://registry.npm.taobao.org
如果想要刪除一些配置,可以直接編輯.npmrc
文件,也可以使用命令進行刪除,例如:
npm config delete registry
- 設置全局配置文件
方法同設置用戶配置文件一樣,只不過在使用命令行時需要加上-g
參數(shù),如下所示:
npm config set registry https://registry.npm.taobao.org -g
- 給
npm
命令添加注冊源選項
比如,臨時使用淘寶鏡像,如下所示:
npm --registry=https://registry.npm.taobao.org [npm命令]
又比如,使用npm
安裝依賴包,如下所示:
npm install --registry https://registry.npmjs.org
但不推薦用這種做法,更推薦設置項目配置文件.npmrc
。
4. 配置發(fā)布組件
npm
配置組件發(fā)布的方式有如下兩種:
-
通過配置
packege.json
實現(xiàn) -
通過配置文件
.npmrc
實現(xiàn)
package.json
配置方式
# @aa是組件的scope。
# scope在模塊名name中使用時,以@開頭,后邊跟一個/
{"name": "@aa/xxx", // 發(fā)布npm包的名字"version": "1.0.0", // 你的npm包版本"description": "xxxx", // 包的描述"main": "dist/btn.js", // 指定組件的主入口文件"publishConfig": {"registry": "要發(fā)布的私有倉庫地址,然后在.npmrc配置用戶名密碼"}......
}
.npmrc
配置方式
# package.json不做任何倉庫的配置:
{"name": "@aa/xxx", // 發(fā)布npm包的名字"version": "1.0.0", // 你的npm包版本"description": "xxxx", // 包的描述"main": "dist/btn.js", // 指定組件的主入口文件......
}# .npmrc配置倉庫地址和用戶名密碼:
@aa:registry=私倉地址
配置好倉庫信息后,執(zhí)行如下發(fā)布命令,即可將打包好的組件發(fā)布到倉庫中:
npm publish
5. npm常用命令
npm config set <key> <value> [-g|--global] //給配置參數(shù)key設置值為value;
npm config get <key> //獲取配置參數(shù)key的值;
npm config delete <key> [-g|--global] //刪除置參數(shù)key及其值;
npm config list [-l] //顯示npm的所有配置參數(shù)的信息;
npm config edit //編輯用戶配置文件
npm get <key> //獲取配置參數(shù) key 生效的值;
npm set <key> <value> [-g|--global] //給配置參數(shù)key設置值為value;
6. 重要備注
6.1 yarn
yarn
會讀取.npmrc
的配置文件,所以不必為yarn
再設置一次。
6.2 scope命名空間
上文提到的指定特殊的命名空間(scope)
的來源,如下代碼所示:
@aa:registry=https://repo.huaweicloud.com/repository/npm/
其中,@aa
是組件的scope
,scope
在模塊名name
中使用時,以@
開頭,比如:
# 在package.json的dependencies標簽中加上即可使用。
"dependencies": {"@test/mypackage": "^1.3.0"
}
6.3 鏡像出錯
.npmrc
文件配置了私有包registry
源,但是當前的下載源是淘寶鏡像,可能會報如下錯誤:
error Command failed with exit code 1
可以將當前的下載源改成私有包registry
源,如果改了之后還報錯,可以嘗試將lock
文件,或者node_modules
文件刪掉,重新開始下載。