当前位置: 首页 > news >正文

搭建NPM私服

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

搭建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

转载于:https://my.oschina.net/dongsong/blog/744385

相关文章:

  • java自动关闭资源
  • Spring+SpringMvc+Mybatis框架集成搭建教程四(项目部署及测试)
  • JS继承之寄生类继承
  • protobuf-c的使用(二)使用
  • 音视频同步(播放)原理
  • AutoCAD 2014 新特性概览
  • jvm实例,tomcat容器,spring容器,在内存中的关系
  • uboot在s3c2440上的移植(4)
  • Xamarin调用谷歌地图以及百度地图api key申请时的SHA1值
  • Js 不支持函数的重载
  • 代理转发工具汇总分析
  • 删除Myeclipse中废弃的workspace记录
  • 立贴为证,一定搞定python
  • 数据量、高并发数据库的高性能、高可用性解决方案
  • 启动流程排错,自制linux内核,编译内核
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 78. Subsets
  • iOS 颜色设置看我就够了
  • Java多线程(4):使用线程池执行定时任务
  • Python socket服务器端、客户端传送信息
  • Redux 中间件分析
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • ------- 计算机网络基础
  • 理解在java “”i=i++;”所发生的事情
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 微服务核心架构梳理
  • 异步
  • 因为阿里,他们成了“杭漂”
  • 用Canvas画一棵二叉树
  • 06-01 点餐小程序前台界面搭建
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • #if #elif #endif
  • $.proxy和$.extend
  • (6)添加vue-cookie
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (补)B+树一些思想
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (十五)使用Nexus创建Maven私服
  • (四)图像的%2线性拉伸
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)ORM
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET NPOI导出Excel详解
  • .NET处理HTTP请求
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • /etc/sudoers (root权限管理)
  • :如何用SQL脚本保存存储过程返回的结果集