源配置
cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
// 查看版本
cnpm -v
// 之后下載東西就用cnpm代替npm下載
npm 配置源(yarn 一樣)
// 查看當(dāng)前下載地址
npm config get registry
// 設(shè)置淘寶鏡像的地址
npm config set registry http://registry.npm.taobao.org
// 查看當(dāng)前的下載地址
npm config get registry
nrm源管理
// nrm安裝
npm install -g nrm
// 查看可選源
nrm ls
npm ---------- https://registry.npmjs.org/
yarn --------- https://registry.yarnpkg.com/
tencent ------ https://mirrors.cloud.tencent.com/npm/
cnpm --------- https://r.cnpmjs.org/
taobao ------- https://registry.npmmirror.com/
npmMirror ---- https://skimdb.npmjs.com/registry/
// 切換為taobao源
nrm use taobao
下載/卸載
npm install [包名]
下載
npm install [包名]@1.0.0
下載指定版本
npm view [包名] versions
查看包有哪些版本
npm uninstall [包名]
卸載
清除緩存
npm cache clear --force
清除緩存
yarn cache dir
清除全局緩存目錄
yarn cache clean --force
清除緩存
發(fā)布npm包
查看當(dāng)前登錄用戶
npm who am i
注冊(cè)用戶
npm adduser --registry=https://example.com
之前已經(jīng)注冊(cè)過(guò)了豁遭,使用登錄命令
npm login --registry=https://example.com
發(fā)布到公共倉(cāng)庫(kù)
npm publish
指定發(fā)布倉(cāng)庫(kù)源
npm publish --registry=https://example.com
或者項(xiàng)目package.json里面配置發(fā)布源
"publishConfig": {
"registry": "https://example.com"
}
指定前綴為@mylib 的文件,都從 http://example.com拉取
npm config set @mylib:registry=http://example.com
顯示當(dāng)前安裝的所有全局包
npm list -g --dept 0
一級(jí)目錄
npm list -g
多級(jí)目錄
鏈接本地npm包贺拣,
npm link
是把包鏈接到全局npm下
npm unlink [包名]
如果unlink 取消鏈接失敗蓖谢,可以查找到全局包,移除掉
where npm
~/usr/.nvm/versions/node/v14.15.4/bin/npm(路徑樣例)
//npm路徑是在bin下譬涡,我們要到lib目錄下
cd ../
cd [npm路徑]/lib/node_modules
rm -rf [package-name]
如果使用 npm link 或者 yarn link 后提示react 闪幽,react-dom 版本不一致,可用使用yalc
yalc
組件倉(cāng)庫(kù)構(gòu)建
yarn build
組件倉(cāng)庫(kù)發(fā)布(注意包是發(fā)布到本地的)
yalc publish
后續(xù)更新build 之后推送
yalc push
項(xiàng)目倉(cāng)庫(kù)(使用組件的倉(cāng)庫(kù))link組件倉(cāng)庫(kù)
yalc add [組件倉(cāng)庫(kù)名]
關(guān)聯(lián)后會(huì)項(xiàng)目中添加.yalc文件,查看node_modules里組件文件一致(跟你組件庫(kù)比較)涡匀,如果沒(méi)有更新盯腌,或者有問(wèn)題清除node_modules 重新install 試一下,或者清除node_modules 下的.cache 文件陨瘩,重新yarn start 項(xiàng)目腕够,保證組件庫(kù)代碼已經(jīng)更新到項(xiàng)目倉(cāng)庫(kù)
調(diào)試結(jié)束,移除組件庫(kù)本地link
yalc remove --all
遇到的問(wèn)題
Q:Found incompatible module
A:yarn config set ignore-engines true
Q:unable to resolve dependency tree
A:npm i --legacy-peer-deps
Q:Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
- You might have mismatching versions of React and the renderer (such as React DOM)
- You might be breaking the Rules of Hooks
- You might have more than one copy of React in the same app
A:這個(gè)一般發(fā)生在Link 調(diào)試時(shí)候舌劳,因?yàn)镽eact 帚湘,React-dom 版本不一致發(fā)生的,可以使用yalc 解決甚淡。