搭建NPM私服

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

搭建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为注册服务端口,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://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
  • 修改配置文件~/.cnpmrc

registry=http://reg.songsong.org




      本文转自dongsong1117 51CTO博客,原文链接:http://blog.51cto.com/dongsong/1850814,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
缓存 资源调度 运维
从零到一搭建私有NPM服务器
从零到一搭建私有NPM服务器
1285 0
从零到一搭建私有NPM服务器
|
存储 缓存 前端开发
npm私服搭建—verdaccio方案及其最佳实践
如今前端圈已十分繁荣,一个跟得上技术时代脚步的互联网公司必定是前后端分离的(至少在狭义上是分离的),这就导致了前端承受的分工压力会越来越大,很多公司的前端项目变得十分庞杂,因此技术负责人可能会考虑根据业务线进行拆分为几个工程系统,这样又引申出一个问题:这几个系统之间如何共用一套公司内部的组件库呢?
2055 0
|
安全 NoSQL 关系型数据库
使用cnpm搭建企业内部私有NPM仓库
cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。
825 0
使用cnpm搭建企业内部私有NPM仓库
|
JavaScript Shell API
|
数据安全/隐私保护 iOS开发 MacOS
verdaccio:搭建npm私有服务器--原来这么简单
verdaccio:搭建npm私有服务器--原来这么简单
707 0
verdaccio:搭建npm私有服务器--原来这么简单
|
JavaScript 数据安全/隐私保护
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node &gt; 6.12.0, npm &gt;=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
417 0
|
Web App开发 域名解析 缓存
搭建 npm 私有镜像仓库,天下苦于 npm build 久矣
当你的研发团队越来越大,或是你无法忍受 node 超慢的构建时,应该怎么办呢?本文将给大家推荐一个基于 Verdaccio 相对较完整的解决方案。
2305 0
搭建 npm 私有镜像仓库,天下苦于 npm build 久矣
|
Web App开发 缓存 资源调度
搭建npm私有镜像仓库,天下苦于npm build久矣
前言 当你的研发团队越来越大,或是你无法忍受node超慢的构建时你可以考虑继续读下去,给大家推荐一个基于Verdaccio相对较完整的解决方案。 由于环境的原因,我们直接去 npmjs.org 下载就不要考虑了,可以将npm config set registry=https://registry.npm.taobao.org 可以缓解一部分, 但是如果你有些自己公司定制的npm包如何在公司内分享呢,这个时候你就需要一个npm私服了. Verdaccio 是什么 Verdaccio 是一个简单的零配置的node.js轻量私有的npm代理仓库。
2547 0
|
前端开发 JavaScript CDN

相关实验场景

更多

推荐镜像

更多