0


全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等

文章目录

1. 文章引言

今天在某低代码平台开发项目时,看到如下编译配置的弹出框:

在这里插入图片描述

注意红框中的

.npmrc

这个词,它是什么意思呢,以及如何设置

.npmrc

呢?

接下来,我便详细解说

.npmrc

这个词,以及如何设置

.npmrc

2. 简述.npmrc

.npmrc

可以理解成

npm running cnfiguration

,即

npm

运行时配置文件。

简单点说,

.npmrc

可以设置

package.json

中依赖包的安装来源,即从哪里下载依赖包。

3. 配置.npmrc

3.1 .npmrc配置文件的优先级

一般情况下,我们的电脑中有多个

.npmrc

文件,我们在安装包时,

npm

按照如下顺序读取这些配置文件:

  1. 项目配置文件: /project/.npmrc
  2. 用户配置文件:~/.npmrc

我们可以通过如下命令,来获取

.npmrc用户配置文件

路径:

npm config get userconfig

如果想恢复默认配置,只需要将用户配置文件

~/.npmrc

删除即可。

  1. 全局配置文件:$PREFIX/etc/npmrc

我们可以通过如下命令,来获取

.npmrc 全局配置文件

路径

$PREFIX

npm config get prefix

【注意】如果你不曾配置过全局文件,该文件不存在。

  1. npm内置配置文件/path/to/npm/npmrc

我们可以通过如下命令,获取

npmrc

npm

的路径:

whichnpm

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

  1. 设置项目配置文件

项目下

.npmrc

文件的优先级最高,可以给每个项目配置不同的镜像,项目之间的配置互不影响。

在项目的根目录下新建

.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
  1. 设置用户配置文件

可以直接通过如下命令:

npm config get userconfig

找到用户配置文件的路径,直接仿照上述方法修改该文件。

当然,也可以通过

npm config set

命令继续设置,如下所示:

npm config set registry https://registry.npm.taobao.org

如果想要删除一些配置,可以直接编辑

.npmrc

文件,也可以使用命令进行删除,例如:

npm config delete registry
  1. 设置全局配置文件

方法同设置用户配置文件一样,只不过在使用命令行时需要加上

-g

参数,如下所示:

npm config set registry https://registry.npm.taobao.org -g
  1. npm命令添加注册源选项

比如,临时使用淘宝镜像,如下所示:

npm--registry=https://registry.npm.taobao.org [npm命令]

又比如,使用

npm

安装依赖包,如下所示:

npminstall--registry https://registry.npmjs.org

但不推荐用这种做法,更推荐设置项目配置文件

.npmrc

4. 配置发布组件

npm

配置组件发布的方式有如下两种:

  • 通过配置packege.json实现
  • 通过配置文件.npmrc实现
  1. package.json配置方式
# @aa是组件的scope。
# scope在模块名name中使用时,以@开头,后边跟一个/{"name":"@aa/xxx",// 发布npm包的名字"version":"1.0.0",// 你的npm包版本"description":"xxxx",// 包的描述"main":"dist/btn.js",// 指定组件的主入口文件"publishConfig":{"registry":"要发布的私有仓库地址,然后在.npmrc配置用户名密码"}......}
  1. .npmrc配置方式
# package.json不做任何仓库的配置:{"name":"@aa/xxx",// 发布npm包的名字"version":"1.0.0",// 你的npm包版本"description":"xxxx",// 包的描述"main":"dist/btn.js",// 指定组件的主入口文件......}

# .npmrc配置仓库地址和用户名密码:
@aa:registry=私仓地址

配置好仓库信息后,执行如下发布命令,即可将打包好的组件发布到仓库中:

npm publish

5. npm常用命令

npm config set<key><value>[-g|--global]  //给配置参数key设置值为value;
npm config get <key>                        //获取配置参数key的值;
npm config delete <key>[-g|--global]      //删除置参数key及其值;
npm config list [-l]                        //显示npm的所有配置参数的信息;
npm config edit                             //编辑用户配置文件
npm get <key>                               //获取配置参数 key 生效的值;
npmset<key><value>[-g|--global]         //给配置参数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

文件删掉,重新开始下载。

标签: npm 前端 node.js

本文转载自: https://blog.csdn.net/lvoelife/article/details/129044749
版权归原作者 互联网全栈开发实战 所有, 如有侵权,请联系我们删除。

“全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等”的评论:

还没有评论