Llinux下搭建NPM私服
搭建NPM私服
由於網上文件所採用的NodeJS和CNPM版本過老,包括GitHub官網,都有或多或少的問題,最終經過折騰和整理形成這篇文件,文件中資料庫選用MySQL,架設Nginx代理非必需。
1.安裝NodeJS
mkdir -p /App/src
cd /App/src
wget https://nodejs.org/dist/v6.4.0/node-v6.4.0-linux-x64.tar.xz
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 https://github.com/cnpm/cnpmjs.org.git
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
為註冊服務埠,webPort
為Web訪問埠,預設即可
registryPort: 7001,
webPort: 7002,
- 管理員設定
admin: 'songsong@songsong.org',
- 資料庫配置
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://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
- 修改配置檔案
~/.cnpmrc
registry=http://reg.songsong.org
相關文章
- [Docker系列·6]搭建基於Docker的NPM私服SinopiaDockerNPM
- 乾貨!NPM私服 + 自定義NFSNPMNFS
- Linux下用nexus搭建maven私服LinuxMaven
- npm私服安裝教程 – verdaccio 入門NPM
- llinux 下安裝 mavenLinuxMaven
- <llinux下kvm虛擬化>Linux
- docker搭建Nexus搭建Maven私服DockerMaven
- 使用 Github 搭建 maven 私服GithubMaven
- 搭建 nuget 私服及注意事項
- 使用docker快速搭建gitlab私服DockerGitlab
- Maven-搭建Maven私服的方法Maven
- 使用JFrog Artifactory Open Source 搭建私服
- 利用nexus構建maven、docker、npm、gradle私服倉庫MavenDockerNPMGradle
- 搭建自己的私服倉庫Nexus
- 手把手教你搭建Docker Registry私服Docker
- maven學習(中)- 私服nexus搭建Maven
- Verdaccio 搭建私有 NPMNPM
- 如何搭建npm包NPM
- git 入門教程之 git 私服搭建教程Git
- RHEL7/CentOS7 yum私服搭建CentOS
- docker搭建maven私服(nexus3),整合springboot上傳下載依賴DockerMavenS3Spring Boot
- NPM 私有倉庫的搭建NPM
- 搭建前端私有npm雜記前端NPM
- AndroidStudio+Nexus3.x搭建Maven私服AndroidS3Maven
- 用 Docker 十分鐘搭建出 Sentry 私服Docker
- npm下載源NPM
- 使用verdaccio搭建私有npm倉庫NPM
- 使用verdaccio 搭建npm私有倉庫NPM
- 搭建npm私有映象倉庫,天下苦於npm build久矣NPMUI
- maven 學習總結(九)——使用Nexus搭建Maven私服Maven
- 阿里雲Ubuntu 16.04系統下用sinopia搭建npm私庫阿里UbuntuNPM
- 部署 packagist私服 搭配gitlab 私服使用Gitlab
- 使用 docker + verdaccio 搭建npm私有倉庫DockerNPM
- npm下載速度優化NPM優化
- 從模組化到NPM私有倉庫搭建NPM
- nexus 上搭建npm私有伺服器NPM伺服器
- CPM - 輕量的NPM私有源程式搭建NPM
- 使用nexus搭建npm本地私人倉庫NPM