编辑
2024-07-20
未分类
00
请注意,本文编写于 102 天前,最后修改于 102 天前,其中某些信息可能已经过时。

目录

.nrmrc和.yarnrc配置镜像源
npm
npm相关设置
设置npm源
.npmrc文件
npm命令参数 --save与--save-dev的区别
node安装依赖时带–save-exact是为什么?原因解答
pnpm
查询pnpm源
设置pnpm源
yarn
配置 yarn
Install Corepack
Node.js >=16.10
Node.js <16.10
查询yarn源
设置yarn源
镜像源集合
使用 nrm 切换镜像源
安装nrm
使用nrm
总结
清除缓存
设置后 yarn 不生效?
nrm use 时做了什么?
用途
示例
使用npm安装依赖
使用小于yarn@2.0安装依赖
使用大于等于yarn@2.0安装依赖
注意事项
如何单独为某个包指定镜像源?
配置文件的优先级如何?
用户目录里面的配置是哪里来的?
yarn可以使用.npmrc的配置吗?
yarn大于等于2.0
yarn大于等于2.0时
二进制文件下载
其他
参考链接

.nrmrc和.yarnrc配置镜像源

npm

npm相关设置

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

设置npm源

sh
# 设置仓库源 npm config set registry <网址> # 国内 淘宝 镜像源 npm config set registry https://registry.npmmirror.com/ # 官方镜像源 npm config set registry https://registry.npmjs.org/

.npmrc文件

.npmrc文件中可以查看或手动修改配置信息。 用 npm config list查看所在路径,里面带有.npmrc的那个就是径了。 例如:

sh
PS 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>

npm配置信息图

npm命令参数 --save--save-dev的区别

  • –save:将保存配置信息到package.jsondependencies节点中。(运行时&生产时的依赖)
  • –save-dev:将保存配置信息到package.jsondevDependencies节点中。(运行时的依赖)

Q1:直接npm install的包是在哪个节点呢? 答:默认进入了package.jsondependencies中。

Q2:删除本地模块时思考的问题:是否将在package.json上的相应依赖信息也消除?

答:

  • npm uninstall [name]:删除模块,但不删除模块留在package.json中的对应信息。
  • npm uninstall [name] --save:删除模块,同时删除模块留在package.jsondependencies下的对应信息。
  • npm uninstall [name] --save-dev:删除模块,同时删除模块留在package.jsondevDependencies下的对应信息。

node安装依赖时带–save-exact是为什么?原因解答

传送门:https://blog.csdn.net/aaqingying/article/details/121209404

pnpm

查询pnpm源

sh
pnpm 的镜像源默认 pnpm get registry

设置pnpm源

sh
# 国内 淘宝 镜像源 pnpm config set registry https://registry.npmmirror.com/ # 官方镜像源 pnpm config set registry https://registry.npmjs.org/

yarn

配置 yarn

参考官方文档:

Install Corepack

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.

Node.js >=16.10

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

Node.js <16.10

Corepack isn’t included with Node.js in versions before the 16.10; to address that, run:

sh
npm i -g corepack

img

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

查询yarn源

sh
yarn config get registry

设置yarn源

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/" }

使用 nrm 切换镜像源

安装nrm

sh
npm install nrm -g 或者 sudo npm install nrm -g

使用nrm

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

总结

清除缓存

sh
npm cache clean --force

设置后 yarn 不生效?

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 暂未知。

img

nrm use 时做了什么?

可以看出 nrm 更改的是 ~/.npmrc 文件

img

sh
https://npmmirror.com/

用途

使用npm或者yarn安装依赖时,指定依赖的镜像源。

示例

使用npm安装依赖

ruby
# .npmrc # 设置同一个前缀/目录下包的源 # 下面的设置将前缀为@babel的包源指向了华为源 # 如果@babel前缀的包内部依赖了其他非@babel前缀的包,那么这些非@babel的包将不适用该规则 @babel:registry=https://mirrors.huaweicloud.com/repository/npm/ # 指定项目下所有包的源 # 如果上面的前缀规则没有匹配到,则使用这里的源 registry=http://mirrors.cloud.tencent.com/npm/

使用小于yarn@2.0安装依赖

ruby
# .yarnrc # 设置同一个前缀/目录下包的源 验证有效 # 下面的设置将前缀为@babel的包源指向了腾讯源 # 如果@babel前缀的包依赖了其他非@babel前缀的包,那么这些非@babel的包将不适用该规则 "@babel:registry" "https://mirrors.huaweicloud.com/repository/npm/" # 如果上面的前缀规则没有匹配到,则使用这里的源 "registry" "http://mirrors.cloud.tencent.com/npm/"

使用大于等于yarn@2.0安装依赖

1c
# .yarnrc.yml # 设置同一个前缀/目录下包的源 验证有效 # 下面的设置将前缀为babel的包源指向了华为源 # 如果babel前缀的包依赖了其他非babel前缀的包,那么这些非babel的包将不适用该规则 "npmScopes": # babel不能以@为开头 "babel": "npmRegistryServer": "https://mirrors.huaweicloud.com/repository/npm/" # 如果上面的前缀规则没有匹配到,则使用这里的源 "npmRegistryServer": "http://mirrors.cloud.tencent.com/npm/"

image.png

注意事项

如何单独为某个包指定镜像源?

npmyarn均无法为单个包配置镜像源。

awk
# .npmrc # 目的是为antd单独指定镜像源,可惜这是不被支持的 antd:registry=https://mirrors.huaweicloud.com/repository/npm/

配置文件的优先级如何?

配置文件有优先级之分。 项目根目录中的要比用户目录中的配置文件优先级更高。 image.png

当执行npm install命令,npm会按照如下顺序查找配置。读取成功就不再往后找了。

  1. /project/.npmrc
  2. /user/.npmrc

用户目录里面的配置是哪里来的?

是你通过命令行设置的。

执行下面的命令,将会在用户目录下创建一个.npmrc文件。

arduino
npm config set registry https://registry.npmmirror.com

yarn可以使用.npmrc的配置吗?

可以,所以如果你有了.npmrcyarn可以直接用。(仅限于小于yarn@2.0的版本中)

当执行yarn install命令,yarn会按照如下顺序查找配置。读取成功就不再往后找了。

  1. /project/.npmrc
  2. /user/.npmrc
  3. /project/.yarnrc
  4. /user/.yarnrc

yarn大于等于2.0

配置文件需要加文件后缀。

文件名必须为.yarnrc.yml,语法也修改了,且不再支持.npmrc

yarn大于等于2.0时

lock文件无法查看包的下载来源怎么办?

虽然我们无法直接通过lock文件查看,但是我们可以间接确认。 那就是把npmRegistryServer或者npmScopes中的npmRegistryServer修改为一个无法正常使用的地址,这样yarn在尝试下载的时候就会给出错误信息,间接的给出了下载源的地址。 image.png

二进制文件下载

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 许可协议。转载请注明出处!