侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

搭建NPM私服

2023-12-22 星期五 / 0 评论 / 0 点赞 / 150 阅读 / 4388 字

由于网上文档所采用的NodeJS和CNPM版本过老,包括GitHub官网,都有或多或少的问题,最终经过折腾和整理形成这篇文档,文档中数据库选用MySQL,架设Nginx代理非必需。1.安装NodeJS

由于网上文档所采用的NodeJS和CNPM版本过老,包括GitHub官网,都有或多或少的问题,最终经过折腾和整理形成这篇文档,文档中数据库选用MySQL,架设Nginx代理非必需。

1.安装NodeJS

mkdir -p /App/srccd /App/srcwget https://nodejs.org/dist/v6.4.0/node-v6.4.0-linux-x64.tar.xztar Jxf node-v6.4.0-linux-x64.tar.xzmv node-v6.4.0-linux-x64 /App/nodeuseradd nodeecho 'export PATH=/App/node/bin:$PATH' >> /home/node/.bash_profile

2.安装CNPM服务端

su - nodegit clone https://github.com/cnpm/cnpmjs.org.gitcd cnpmjs.org/npm install

3.MySQL创建数据库并授权

CREATE DATABASE cnpmjs;GRANT ALL ON cnpmjs.* ON cnpmjs@'127.0.0.1' IDENTIFIED BY 'Password';FLUSH PRIVILEGES;

4.数据库导入数据

mysql -uroot cnpmjs < docs/db.sql

5.修改配置文件config/index.js

  • 启用集群模式,可选项
enableCluster: true,
  • 端口设置,registryPort为注册服务端口,webPort为Web访问端口,默认即可
registryPort: 7001,webPort: 7002,
  • 管理员设置
admin: '[email protected]',
  • 数据库配置
db: 'cnpmjs',username: 'cnpmjs',password: 'Password',dialect: 'mysql',host: '127.0.0.1',port: 3306,
  • 绑定监听地址,可选项。若非本机需要访问,则添加符号//注释此行。亦可在本机架设Nginx做反向代理,则无须修改此行。
bindingHost: '127.0.0.1',
  • 注册主机名修改为对应IP地址或域名
registryHost: 'npm.songsong.org',
  • 开启私有模式,只允许管理员发布包,默认公有模式允许所有用户发布包。
enablePrivate: true,
  • 允许发布私有包必须具有的命名前缀
scopes: [ '@songsong.org' ],
  • 设置同步源,默认即可
sourceNpmRegistry: 'https://registry.npm.taobao.org',
  • 同步模式,none不同步只代理源公有模块;exist只同步已存在的模块;all同步所有模块。
syncModel: 'exist', 

6.启动CNPM服务

bin/nodejsctl start

7.添加Nginx反向代理,使用两个域名区分CNPM Web服务和注册服务,重载配置

  • Web服务
upstream npm.songsong.org{    server 127.0.0.1:7002 weight=10;}server{    listen       80;    server_name  npm.songsong.org;    index        index.html;    location /    {        proxy_redirect off;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header REMOTE-HOST $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_connect_timeout 60;        proxy_send_timeout 60;        proxy_read_timeout 60;        proxy_pass http://npm.songsong.org;    }}
  • 注册服务
upstream reg.npm.songsong.org{    server 127.0.0.1:7001 weight=10;}server{    listen       80;    server_name  reg.npm.songsong.org;    index        index.html;    location /    {        proxy_redirect off;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header REMOTE-HOST $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_connect_timeout 60;        proxy_send_timeout 60;        proxy_read_timeout 60;        proxy_pass http://reg.npm.songsong.org;    }}

8.安装CNPM客户端

npm install -g cnpm

9.设置CNPM客户端访问私服,两种方式效果一样

  • 命令行
cnpm set registry http://reg.npm.songsong.org
  • 修改配置文件~/.cnpmrc
registry=http://reg.npm.songsong.org

广告 广告

评论区