10分钟 搭建 NPM 私服

私服 npm 能做什么?

如果一个公司的项目非常多,而且有很多的方法、组件、api都是可以共用的。如果没有私服 npm,那么我们将不断的复制粘贴这些代码到各个项目中,一旦其中的某一处需要修改,那么所有的项目都需要改一遍。

更好地维护这些公共代码,比较好的处理方式是将这些公共代码封装成一个个 npm 包,但是我们又不能将公司的代码发布到外网的 npm 中,所以私服 npm 就能够很好地帮助我们解决这一问题。

 

参考文档:https://help.sonatype.com/repomanager3

1、要使用nexus服务需要安装jdkmaven

1.1jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html

rpm -ivh jdk-8u221-linux-x64.rpm

 

vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

source /etc/profile

 

java -version

 

1.2maven下载地址:https://maven.apache.org/download.cgi

tar -zxvf apache-maven-3.6.1-bin.tar.gz

 

vim /etc/profile

export PATH=$PATH:/usr/local/maven/bin

 

source /etc/profile

 

mvn -v

 

2、安装nexus

下载地址:https://www.sonatype.com/nexus-repository-oss,点击首页大广告图,跳转后填写邮箱,点击,download,网页跳转后,选择 nexus repository manager oss 3.x - unix,下载最新安装包。

或者打开网址:https://my.sonatype.com/  Latest Releases 标签下, 下载最新nexus repository安装包

wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz

 

tar -zxvf nexus-3.18.1-01-unix.tar.gz

#解压后又2个目录

      #nexus-3.18.1-01:包含了 Nexus 运行所需要的文件。是 Nexus 运行必须的

      #sonatype-work:包含了 Nexus 生成的配置文件、日志文件、仓库文件等。当我们需要备份 Nexus 的时候默认备份此目录即可

 

#修改环境变量

vim /etc/profile

export NEXUS_HOME=/usr/local/nexus/nexus-3.18.1

export PATH=$PATH:$NEXUS_HOME/bin

 

source /etc/profile

 

#修改启动用户

vim /usr/local/nexus/nexus-3.18.1/bin/nexus.rc

#run_as_user=""                     #内容就这一行,放开注释,填写用户即可

 

#修改端口

vim /usr/local/nexus/nexus-3.18.1/etc/nexus-default.properties     #默认是8081

 

#最后启动nexus

cd /usr/local/nexus/nexus-3.18.1/bin

./nexus start

./nexus status

 

#访问http://ip:8081,登陆用户admin 密码存放在:/usr/local/nexus/sonatype-work/nexus3/admin.password 目录

 

#开机自启动

vim /etc/rc.d/rc.local

 

/usr/local/nexus/nexus-3.18.1/bin/nexus start       #添加这一行内容

 

chmod 755 /etc/rc.d/rc.local

打开登陆界面

打开设置 -> repositories 页面,点击 Create repository 按钮。

 

10分钟 搭建 NPM 私服

先创建 npm(proxy) 仓库,即代理仓库

填入仓库名以及代理地址,代理地址可使用 npm 官方镜像地址 https://registry.npmjs.org

 

10分钟 搭建 NPM 私服

完成后点击底部 Creaete repository 完成创建。

创建 npm(hosted) 仓库,即私服仓库

 

10分钟 搭建 NPM 私服

输入仓库名即可点击底部 Creaete repository 完成创建。

创建 npm(group) 仓库,npm 组

 

10分钟 搭建 NPM 私服

 

创建 npm(group) 需要填写仓库名,然后将 npm(proxy)proxy(hosted) 设置为成员即可,点击底部 Creaete repository 完成创建。

 

 

原有的 npm 是可以不登录进行安装 npm 包的,所以我们的私服也需要改成允许匿名访问的
打开设置页面 Security -> Anonymous,勾选 Allow anonymous users to access the server 即可,点击 save 保存。
 

10分钟 搭建 NPM 私服

 

然后就可以登陆私服npm

npm login --registry=http://localhost:8081/repository/npm-hosted/

可以看到这次就安装成功了。

但是每次都需要指定 --registry 也太麻烦了,我们可以使用

npm config set registry http://localhost:8081/repository/npm-group/ 将 npm 默认的镜像改成我们私服的镜像。这样我们就不需要每次都指定镜像源了。

使用publish 命令发布

npm publish --registry=http://localhost:8081/repository/npm-hosted/