美文网首页
.npmrc 配置文件

.npmrc 配置文件

作者: Cherry丶小丸子 | 来源:发表于2024-03-17 17:38 被阅读0次

    原文地址:https://blog.csdn.net/lvoelife/article/details/129044749

    .npmrc 是 npm 运行时配置文件,用于设置依赖包的安装来源。配置文件有项目、用户和全局三个级别,可以通过 npm config set 命令设置 key = value 对。文章介绍了如何设置不同级别的 .npmrc,包括配置发布组件到私有仓库的方法,并提到了 yarn、scope 命名空间和处理镜像出错的问题

    1. 文章引言

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


    image.png

    注意红框中的 .npmrc 这个词,它是什么意思呢,以及如何设置 .npmrc 呢?
    接下来,我便详细解说 .npmrc 这个词,以及如何设置 .npmrc

    2. 简述 .npmrc

    .npmrc 可以理解成 npm running configuration,即 npm 运行时配置文件。

    简单点说,.npmrc 可以设置 package.json 中依赖包的安装来源,即从哪里下载依赖包。

    3. 配置 .npmrc
    3.1 .npmrc 配置文件的优先级

    一般情况下,我们的电脑中有多个 .npmrc 文件,我们在安装包时,npm 按照如下顺序读取这些配置文件:

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

    我们可以通过如下命令,来获取 .npmrc 用户配置文件路径:

    npm config get userconfig
    

    如果想恢复默认配置,只需要将用户配置文件 ~/.npmrc 删除即可。

    全局配置文件:$PREFIX/etc/npmrc
    我们可以通过如下命令,来获取 .npmrc 全局配置文件路径 $PREFIX

    npm config get prefix
    

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

    npm 内置配置文件 /path/to/npm/npmrc
    我们可以通过如下命令,获取 npmrcnpm 的路径:

    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 文件的优先级最高,可以给每个项目配置不同的镜像,项目之间的配置互不影响。

    在项目的根目录下新建 .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 命令继续设置,如下所示:

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

    如果想要删除一些配置,可以直接编辑 .npmrc 文件,也可以使用命令进行删除,例如:

    npm config delete registry
    

    设置全局配置文件
    方法同设置用户配置文件一样,只不过在使用命令行时需要加上 -g 参数,如下所示:

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

    npm 命令添加注册源选项
    比如,临时使用淘宝镜像,如下所示:

    npm --registry=https://registry.npm.taobao.org
    

    又比如,使用 npm 安装依赖包,如下所示:

    npm install  --registry https://registry.npmjs.org
    

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

    4. 配置发布组件

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

    通过配置 packege.json 实现

    通过配置文件 .npmrc 实现

    package.json 配置方式

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

    .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 生效的值;
    npm set <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 是组件的 scopescope 在模块名 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 文件删掉,重新开始下载。

    相关文章

      网友评论

          本文标题:.npmrc 配置文件

          本文链接:https://www.haomeiwen.com/subject/tfqezdtx.html