sh#查看npm设置
npm config list --l 或 npm config ls -l #查看全部配置项
npm config list #查看简略配置信息
npm config get <key> #查看某一项的配置信息
npm config set <key> <value> #设置某一项的配置信息
# 设置缓存、全局依赖
npm config set cache "D:\xxx\node\node_cache"
npm config set prefix "D:\xxx\node\node_global"
# 查询npm源
npm get registry
sh# 设置仓库源
npm config set registry <网址>
# 国内 淘宝 镜像源
npm config set registry https://registry.npmmirror.com/
# 官方镜像源
npm config set registry https://registry.npmjs.org/
在.npmrc
文件中可以查看或手动修改配置信息。
用 npm config list
查看所在路径,里面带有.npmrc
的那个就是径了。
例如:
shPS H:\Winpython64-3.12.4.1dot\nodejs18> npm config get userconfig C:\Users\wyf\.npmrc npm config list PS H:\Winpython64-3.12.4.1dot\nodejs18> npm config get userconfig npm error config prefix cannot be changed from project config: H:\Winpython64-3.12.4.1dot\nodejs18\.npmrc. C:\Users\wyf\.npmrc PS H:\Winpython64-3.12.4.1dot\nodejs18>
--save
与--save-dev
的区别–save
:将保存配置信息到package.json
的dependencies
节点中。(运行时&生产时的依赖)–save-dev
:将保存配置信息到package.json
的devDependencies
节点中。(运行时的依赖)Q1:直接npm install
的包是在哪个节点呢?
答:默认进入了package.json
的dependencies
中。
Q2:删除本地模块时思考的问题:是否将在package.json
上的相应依赖信息也消除?
答:
npm uninstall [name]
:删除模块,但不删除模块留在package.json
中的对应信息。npm uninstall [name] --save
:删除模块,同时删除模块留在package.json
中dependencies
下的对应信息。npm uninstall [name] --save-dev
:删除模块,同时删除模块留在package.json
中devDependencies
下的对应信息。传送门:https://blog.csdn.net/aaqingying/article/details/121209404
shpnpm 的镜像源默认 pnpm get registry
sh# 国内 淘宝 镜像源
pnpm config set registry https://registry.npmmirror.com/
# 官方镜像源
pnpm config set registry https://registry.npmjs.org/
参考官方文档:
The preferred way to manage Yarn is through Corepack, a new binary shipped with all Node.js releases starting from 16.10. It acts as an intermediary between you and Yarn, and lets you use different package manager versions across multiple projects without having to check-in the Yarn binary anymore.
Corepack is included by default with all Node.js installs, but is currently opt-in. To enable it, run the following command:
sh corepack enable
Corepack isn’t included with Node.js in versions before the 16.10; to address that, run:
shnpm i -g corepack
sh# 查看版本
yarn --version
# return 1.22.17
# yarn 1 镜像源
yarn config set registry https://registry.npmmirror.com
yarn config set registry https://registry.npmmirror.com
# yarn 清除缓存
yarn cache clean
#或
npm cache clean --force
#查看已缓存包的列表
yarn cache list
# cache缓存文件目录路径
yarn cache dir
shyarn config get registry
sh# 国内 淘宝 镜像源
yarn config set registry https://registry.npmmirror.com/
# 官方镜像源
yarn config set registry https://registry.yarnpkg.com/
json{
"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/",
"ali": "https://registry.npm.alibaba-inc.com/"
}
shnpm install nrm -g 或者 sudo npm install nrm -g
sh# nrm <add | del> <registry-name> [registry url] - 添加或删除镜像源
# 添加源
nrm add testRegistry https://baidu.com/
# 删除源
nrm del testRegistry
# nrm use <registry-name> - 使用源
# 使用源
nrm use taobao
# nrm test - 测试所有镜像源的速度
nrm test
# nrm ls - 列出所有的镜像源或查看当前使用的源
nrm ls
shnpm cache clean --force
yarn 版本 1.22.22 yarn 并未读取当前 项目目录 或用户(~/.npmrc)目录下的 .npmrc 文件的 registry 字段,在查询 yarn v1 官网和相关 issue(https://github.com/yarnpkg/yarn/issues/2118)未发现相关描述 yarn v1.x 版本中仍会读取 .npmrc 的相关字段,但会优先使用 .yarnrc 中的值,由于 yarn config 中的 registry 字段无法删除(delete 后仍有默认值),在项目外只能使用命令更改,或修改 .yarnrc。至于未读取当前项目下的 .npmrc 中的 registry 暂未知。
可以看出 nrm 更改的是 ~/.npmrc 文件
shhttps://npmmirror.com/
使用npm
或者yarn
安装依赖时,指定依赖的镜像源。
ruby# .npmrc
# 设置同一个前缀/目录下包的源
# 下面的设置将前缀为@babel的包源指向了华为源
# 如果@babel前缀的包内部依赖了其他非@babel前缀的包,那么这些非@babel的包将不适用该规则
@babel:registry=https://mirrors.huaweicloud.com/repository/npm/
# 指定项目下所有包的源
# 如果上面的前缀规则没有匹配到,则使用这里的源
registry=http://mirrors.cloud.tencent.com/npm/
ruby# .yarnrc
# 设置同一个前缀/目录下包的源 验证有效
# 下面的设置将前缀为@babel的包源指向了腾讯源
# 如果@babel前缀的包依赖了其他非@babel前缀的包,那么这些非@babel的包将不适用该规则
"@babel:registry" "https://mirrors.huaweicloud.com/repository/npm/"
# 如果上面的前缀规则没有匹配到,则使用这里的源
"registry" "http://mirrors.cloud.tencent.com/npm/"
1c# .yarnrc.yml # 设置同一个前缀/目录下包的源 验证有效 # 下面的设置将前缀为babel的包源指向了华为源 # 如果babel前缀的包依赖了其他非babel前缀的包,那么这些非babel的包将不适用该规则 "npmScopes": # babel不能以@为开头 "babel": "npmRegistryServer": "https://mirrors.huaweicloud.com/repository/npm/" # 如果上面的前缀规则没有匹配到,则使用这里的源 "npmRegistryServer": "http://mirrors.cloud.tencent.com/npm/"
npm
和yarn
均无法为单个包配置镜像源。
awk# .npmrc # 目的是为antd单独指定镜像源,可惜这是不被支持的 antd:registry=https://mirrors.huaweicloud.com/repository/npm/
配置文件有优先级之分。 项目根目录中的要比用户目录中的配置文件优先级更高。
当执行npm install
命令,npm
会按照如下顺序查找配置。读取成功就不再往后找了。
/project/.npmrc
/user/.npmrc
是你通过命令行设置的。
执行下面的命令,将会在用户目录下创建一个.npmrc
文件。
arduinonpm config set registry https://registry.npmmirror.com
可以,所以如果你有了.npmrc
,yarn
可以直接用。(仅限于小于yarn@2.0的版本中)
当执行yarn install
命令,yarn
会按照如下顺序查找配置。读取成功就不再往后找了。
配置文件需要加文件后缀。
文件名必须为.yarnrc.yml
,语法也修改了,且不再支持.npmrc
。
lock文件无法查看包的下载来源怎么办?
虽然我们无法直接通过lock
文件查看,但是我们可以间接确认。
那就是把npmRegistryServer
或者npmScopes
中的npmRegistryServer
修改为一个无法正常使用的地址,这样yarn
在尝试下载的时候就会给出错误信息,间接的给出了下载源的地址。
awk# 指定sass的二进制文件下载,不适用于npm包 sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ # 指定electron的二进制文件下载,不适用于npm包 electron_mirror=https://npm.taobao.org/mirrors/electron/ # npm包镜像源 registry=https://registry.npm.taobao.org
.npmrc配置文档: https://docs.npmjs.com/cli/v8/configuring-npm/npmrc
.yarnrc配置文档(yarn小于2.0): https://classic.yarnpkg.com/en/docs/yarnrc
.yarnrc.yrm配置文档(yarn大于等于2.0): https://yarnpkg.com/configuration/manifest
查看当前设置的源
npm config get registry
查看当前npm
配置文件信息
npm config get
本文作者:任浪漫
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!