使用npm私有仓库,私有仓库不存在走三方镜像源,服务器拉取配置

一、我们为什么要搭建自己的npm私有仓库

  1. 拉安装包更快(优先从私有仓库拉,没有的才去第三方镜像源拉)
  2. 团队发布自己的包,项目的私密性
  3. 安装包更容易管理

二、通过Nexus建立npm私有仓库

  • 此处网上资料很多,可在网上搜索 点击此处

三、使用npm私有仓库
方法1:修改镜像源

    a.清除工程原镜像源
     npm config rm registry
    
    b.添加新的nexus镜像源
     npm config set registry=http://xxxxxxxxxxxxxx:8081/repository/npm-group/
    
    c.删除原始缓存
     手动删除node_modules
    
    d.重新构建
     npm update
     npm install
    
    e.查看是否已使用最新的私有仓库(如果打印的是设置的registry就是成功了)
     npm get registry (或 npm config ls)
    
    f.其他途径验证是否是私有仓库
      点击package-lock.json---->查看resolved字段的值是不是     http://xxxxxxxxxxxxx:8081/repository/npm-group/xxxxxxxxxx  如果是,就是对的

方法2:项目根目录下配置.npmrc文件

registry=http://xxxxxxxxxxxxx:8081/repository/npm-group/

注:这种方法配置更简单,还不用更改原电脑的npm镜像源,它会优先拉取私有仓库的依赖,没有的才根据自己电脑的npm镜像源拉取依赖。

原文链接:https://blog.csdn.net/qq_27936291/article/details/125184278

 

配置文件.npmrc优先级
电脑系统中可能会存在多个.npmrc文件,在我们安装依赖包时,npm会按照如下顺序读取配置文件,也就是优先级;

项目配置文件: /project/.npmrc

用户配置文件:~/.npmrc

全局配置文件:/etc/npmrc

配置.npmrc
.npmrc文件里面以key=value的格式进行配置;

1、国内镜像源,在国内用国内的源速度飞起;

中国镜像站
搜索地址:https://npmmirror.com/
registry地址:https://registry.npmmirror.com
2、使用私有仓库,阿里云效“制品仓库”免费提供私有NPM管理(如果使用其它私有操作基本一样);

使用私有仓库是原因大部分是有一些业务上的封装,从公司安全角度考虑不能使用公共仓库托管,使用了私有仓库不会影响原来公共源的拉取使用,私有仓库提供方(阿里云效)都给处理好了,我们也不用管;

如果使用了私有仓库,但是没有配置好凭证,npm install 就会报错;

#访问链接,可以根据操作步骤提示操作
https://packages.aliyun.com/npm/npm-registry/guide
#设置镜像源,相当于在`~/.npmrc`文件中配置了镜像源,下面截图第一行
npm config set registry=https://packages.aliyun.com/*******/npm/npm-registry/
#登陆npm仓库并设置凭证
npm login
#输入阿里云效提供的用户名、密码和邮箱后,相当在`~/.npmrc`增加了私有访问令牌,下面截图第二行`_authToken`后面的值就是令牌token请妥善保管
//??????/:_authToken=0000-0000000-0000-0000 作者:猿编程 https://www.bilibili.com/read/cv16936294/ 出处:bilibili

在CI/CD工作流中使用私有包
私有仓库配置完后,系统家目录下会创建好.npmrc配置文件“~/.npmrc”,但是如果是在CI/CD中使用配置文件最好是放在项目录下,项目目录下的配置文件优先级也最高;

# `请注意:这波操作相当于把你的秘钥token暴露在了项目目录下,是存在安全隐患的`
# 复制一下就好,就是把创建好的配置文件复制到自己的项目目录下
cp ~/.npmrc /project/
保护您的令牌
你的令牌可能有权读取专用包、代表你发布新包或更改用户或包设置;不要将令牌添加到版本控制中或以不安全的方式存储令牌;将其存储在密码管理器、云提供商的安全存储或 CI/CD 提供商的安全存储中;

# 编辑`.npmrc`文件,将`_authToken=`后面token用环境变量代替
//???????/:_authToken=${NPM_TOKEN}

# 使用`export`可以声明环境变量
export NPM_TOKEN=0000-0000000-0000-0000
# 实际开发是,每次都export一下也不现实,所以需要一劳永逸,写在`.zshrc`、`.bash_profile`

echo export NPM_TOKEN=0000-0000000-0000-0000 >> ~/.zshrc

CI/CD中的配置 

1、git-clone,克隆代码;

2、depend-install,依赖安装;

npm install -g pnpm --registry=https://registry.npmmirror.com \
&& node -v \
&& npm -v \
&& pnpm -v \
&& export NPM_TOKEN=0000-0000000-0000-0000 \
&& pnpm install \
&& pnpm run build:dev
3、dockerfile-generator,生成Dockerfile;

4、build-push-image,生成可以部署的镜像;

作者:猿编程 https://www.bilibili.com/read/cv16936294/ 

posted @ 2022-11-16 17:59  蓓蕾心晴  阅读(4466)  评论(0编辑  收藏  举报