当前位置: 首页 > news >正文

你知道 npmrc 文档吗? ---- npmrc 关键作用介绍

你知道 npmrc 文档吗? ---- npmrc 关键作用介绍

  • 你知道 npmrc 文档吗? ---- npmrc 关键作用介绍
    • 如何修改配置呢?
    • 日常开放常常需要置哪些信息呢?
      • registry 信息
      • 配置限定包
      • 认证信息
      • 代理配置
      • 缓存配置
      • 安装行为
    • 参考

你知道 npmrc 文档吗? ---- npmrc 关键作用介绍

.npmrc 是 npm 的配置文件。rc 是 registry config 缩写。

npm 在执行命令时,会读取里面的配置,然后执行特定的行为,通过它可改变 npm 的默认行为,比如下载精确版本的 npm 包,从某个 npm 源的下载依赖等。

4.npmrc 文件,npm 会依次读取这些文件,后面的文件会覆盖前面的文件的配置。

  1. 项目级别的 .npmrc 文件,在 package.json 文件所在的目录。
  2. 用户级别的 .npmrc 文件,在用户的根目录。通过 npm config get userconfig 查看。
  3. 全局级别的 .npmrc 文件, 在 npm 的安装目录下。通过 npm config get globalconfig 查看。
  4. 内置的 .npmrc 文件,npm 自带的配置文件,无法修改,基本不会用到。

主要关注项目级别的 .npmrc 文件和用户级别的 .npmrc 文件。

一个典型的配置:

# save-exact 的优先级更加高
# save-exact=true
# 相似版本
save-prefix=~
# 从淘宝镜像下载
registry=https://registry.npmmirror.com
# 指定 node-sass 镜像 提高下载速度
sass_binary_site=https://npmmirror.com/mirrors/node-sass
electron_mirror=https://npmmirror.com/mirrors/electron/
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
# 详细日志 常用于调试
loglevel=verbose

命令行传递的参数优先级最高,然后是项目级别的配置,然后是用户级别的配置,最后是全局级别的配置。

编码务必使用 UTF-8 编码,否则可能不会读取配置。

# 或者 ; 表示注释。

如何修改配置呢?

npm config set [key] [value] [-g] # -g 全局配置
npm config set save-prefix ^
npm config set registry https://registry.npmmirror.com/npm config get [key] # 查看配置
npm config get cache # 查看缓存目录
npm config list -l # 查看本地配置
npm config list -g # 全局配置
npm config list -u # 用户配置

日常开放常常需要置哪些信息呢?

registry 信息

npm 的源,可以是官方源,也可以是第三方源,比如淘宝源,或者公司的私有源。

# 官方源
registry=https://registry.npmjs.org/
# 淘宝源
# registry=https://registry.npmmirror.com/

配置限定包

@myscope:registry=https://mycustomregistry.example.org

认证信息

当使用私有的 npm 源时,可能需要认证信息。

注意认证信息的应用范围,源和认证信息不对应,可能导致404。

# bad config
@myorg:registry=https://somewhere-else.com/myorg
@another:registry=https://somewhere-else.com/another
# _authToken 将应用到 @myorg 和 @another 两个源上
//somewhere-else.com/:_authToken=MYTOKEN
# 只应用到 @myorg 上
//somewhere-else.com/myorg/:_authToken=MYTOKEN1
# 只应用到 @another 上
//somewhere-else.com/another/:_authToken=MYTOKEN2# 从 gitlab 的私有仓库下载依赖
@jackzhoumine:registry=https://gitlab.com/api/v4/projects/54539895/packages/npm/
//gitlab.com/api/v4/projects/54539895/packages/npm/:_authToken=glpat-3759QXSo9Pz9FxGe12324

可通过这些信息认证:

_auth  # (base64 authentication string)
_authToken  #(authentication token)
username
_password
email
certfile # (path to certificate file)
keyfile # (path to key file)

通过 npm login 登录,会自动添加认证信息。

认证信息是敏感信息,不要提交到代码仓库。

不能配置多个源和对多个源的认证信息。

代理配置

proxy=http://username:password@proxy-server-address:port
https-proxy=https://username:password@proxy-server-address:port

缓存配置

配置 node 依赖的缓存。

cache=your/path/to/cache

安装行为

比如默认安装的时候,是否保存精确版本,依赖信息是否保存到 package.json 文件等。

# 相似版本
save-prefix=~

参考

  • npm-npmrc
  • What is a .npmrc file?
  • 深入了解npmrc:使用与配置指南
http://www.lryc.cn/news/369696.html

相关文章:

  • 发现 Laravel 中的 api 响应时间明显过长
  • 如何在MySQL中创建不同的索引和用途?
  • maxwell同步mysql到kafka(一个服务器启动多个)
  • 实用软件分享---简单菜谱 0.3版本 几千种美食(安卓)
  • 网络学习(14)|RESTful API设计:构建优雅的Web服务
  • 【开源】APIJSON 框架
  • R语言探索与分析18-基于时间序列的汇率预测
  • 30岁迷茫?AI赛道,人生新起点
  • 开门预警系统技术规范(简化版)
  • Django与MySQL:配置数据库的详细步骤
  • GPT-4o short description
  • MATLAB 矩阵
  • LED灯的功率以及好的品牌推荐
  • Linux “ 软件管理 “
  • 【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息
  • 使用rufus做Kali Linux时持久分区大小如何设置
  • Java高阶数据结构-----并查集(详解)
  • GitLab教程(三):多人合作场景下如何pull代码和处理冲突
  • 模版偏特化之std::enable_if
  • 好用的Web数据库管理工具推荐(ChatGPT的推荐)
  • encoding Token和embedding 傻傻分不清楚?
  • 一个公用的数据状态修改组件
  • [python]yfinance国内不能使用
  • Frontiers旗下期刊,23年分区表整理出炉!它还值得投吗?
  • 基于JSP的毕业生就业信息管理系统
  • CDN、CNAME、DNS
  • 直播商城源码-PC+APP+H5+小程序现成源码
  • 16. 《C语言》——【牛客网BC124 —— BC130题目讲解】
  • Docker 国内镜像源更换
  • python07