搭建NPM私服
由于网上文档所采用的NodeJS和CNPM版本过老,包括GitHub官网,都有或多或少的问题,最终经过折腾和整理形成这篇文档,文档中数据库选用MySQL,架设Nginx代理非必需。
1.安装NodeJS
mkdir -p /App/src
cd /App/src
wget
tar Jxf node-v6.4.0-linux-x64.tar.xz
mv node-v6.4.0-linux-x64 /App/node
useradd node
echo 'export PATH=/App/node/bin:$PATH' >> /home/node/.bash_profile
2.安装CNPM服务端
su - node
git clone
cd 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: 7001,webPort: 7002,
admin: 'songsong@songsong.org',
db: 'cnpmjs',
username: 'cnpmjs',
password: 'Password',
dialect: 'mysql',
host: '127.0.0.1',
port: 3306,
bindingHost: '127.0.0.1',
registryHost: 'npm.songsong.org',
enablePrivate: true,
scopes: [ '@songsong.org' ],
sourceNpmRegistry: 'https://registry.npm.taobao.org',
syncModel: 'exist',
6.启动CNPM服务
bin/nodejsctl start
7.添加Nginx反向代理,使用两个域名区分CNPM 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.songsong.org
{
server 127.0.0.1:7001 weight=10;
}
server
{
listen 80;
server_name reg.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.songsong.org;
}
}
8.安装CNPM客户端
npm install -g cnpm
9.设置CNPM客户端访问私服,两种方式效果一样
cnpm set registry http://reg.songsong.org
registry=http://reg.songsong.org
本文转自dongsong1117 51CTO博客,原文链接:http://blog.51cto.com/dongsong/1850814,如需转载请自行联系原作者