搭建NPM私服

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介:

搭建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,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
缓存 资源调度 运维
从零到一搭建私有NPM服务器
从零到一搭建私有NPM服务器
2273 0
从零到一搭建私有NPM服务器
|
安全 NoSQL 关系型数据库
使用cnpm搭建企业内部私有NPM仓库
cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。
1113 0
使用cnpm搭建企业内部私有NPM仓库
|
存储 缓存 前端开发
npm私服搭建—verdaccio方案及其最佳实践
如今前端圈已十分繁荣,一个跟得上技术时代脚步的互联网公司必定是前后端分离的(至少在狭义上是分离的),这就导致了前端承受的分工压力会越来越大,很多公司的前端项目变得十分庞杂,因此技术负责人可能会考虑根据业务线进行拆分为几个工程系统,这样又引申出一个问题:这几个系统之间如何共用一套公司内部的组件库呢?
2613 0
|
JavaScript Shell API
|
数据安全/隐私保护 iOS开发 MacOS
verdaccio:搭建npm私有服务器--原来这么简单
verdaccio:搭建npm私有服务器--原来这么简单
907 0
verdaccio:搭建npm私有服务器--原来这么简单
|
JavaScript 数据安全/隐私保护
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
从0到1搭建一款Vue可配置视频播放器组件(Npm已发布)
|
Web App开发 域名解析 缓存
搭建 npm 私有镜像仓库,天下苦于 npm build 久矣
当你的研发团队越来越大,或是你无法忍受 node 超慢的构建时,应该怎么办呢?本文将给大家推荐一个基于 Verdaccio 相对较完整的解决方案。
2486 0
搭建 npm 私有镜像仓库,天下苦于 npm build 久矣
|
资源调度 应用服务中间件 Linux
npm私服安装教程 - verdaccio 入门
笔者安装的是 verdaccio@3.2.0,需要 node &gt; 6.12.0, npm &gt;=3.x 我们使用 pm2 来管理进程,需要全局安装 pm2
666 0
|
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代理仓库。
2829 0
|
前端开发 JavaScript CDN

热门文章

最新文章

推荐镜像

更多
  • NPM