imeay/blog

nexus 搭建 npm 代理仓库及本地仓库

Opened this issue · 0 comments

imeay commented

nexus 真的好强大, 作为一个 nodejser 及 kotliner, 当发现 nexus 可以搭建 npm 私有仓库及 maven 库是是有多激动

npm 代理仓库

  • 将公共 npm 服务器的资源代理缓存,减少重复下载,加快开发人员和CI服务器的下载速度
    image

npm 私有仓库

image

  • 创建私有仓库,可以放置内部使用的包或者针对公共包进行的调整,但不足以发布到包

如何使用 npm 代理仓库

命令行指定 registry

  • 会提示需要登录,登录方式
> npm login --registry=http://localhost:8081/repository/chenxiaochi-npm-proxy/
Username: admin
Password:
Email: (this IS public) cimeay@gmail.com
Logged in as admin on http://localhost:8081/repository/chenxiaochi-npm-proxy/

npm --registry=http://localhost:8081/repository/chenxiaochi-npm-proxy/ i koa

通过 .npmrc

  1. .npmrc 文件内容
    registry=http://localhost:8081/repository/chenxiaochi-npm-proxy/

2. 拉取模块

  • 以下 > 所在行内容代表输入命令, 其他行内容为执行命令结果
    > npm i koa 
    npm ERR! code E401
    npm ERR! 404 401 Unauthorized: koa@^2.10.0
    
    // 按照提示,我们先登录
    > npm login
    Username: admin
    Password:
    Email: (this IS public) cimeay@gmail.com
    Logged in as admin on http://localhost:8081/repository/chenxiaochi-npm-proxy/
    
    // 重新再拉一次包
    > npm i koa
    ...

查看 proxy 结果

可以看到 koa 包 已经缓存到我们本地的仓库
image

如何上传包到自建的 npm 库

  • 从新建一个项目开始
> mkdir local-npm-test && cd local-npm-test
> npm init // 一直按回车
...
  • 登录仓库及推送本地包
> npm login --registry=http://localhost:8081/repository/chenxiaochi-npm-hosted/
Username: admin
Password:
Email: (this IS public) cimeay@gmail.com
Logged in as admin on http://localhost:8081/repository/chenxiaochi-npm-hosted/.
> npm publish --registry=http://localhost:8081/repository/chenxiaochi-npm-hosted/
  • 查看推送结果
  • 如图,在我们本地的仓库已经可以看到刚才推送的包拉
    image