最近的Node项目中因为数据模型等问题,需要有一个对各个模块进行统一的管理,如果把私有的模型publish到公共的npm不太合适,所以决定使用cnpm搭建一个私有的npm,同时也可以对项目常用的npm模块做一个缓存,加快部署速度。

搭建的过程还是比较简单,参考cnpm的Deploy很快搭建起来,给大家分享一下。

服务器环境:

  • Ubuntu Server 14.04
  • Node.js v0.12.0
  • MySQL 5.5

因为cnpm使用了--harmony参数,所以需要Node版本大于0.11.12,所以就直接上了最新的v0.12.0,没有MySQL也没关系,可以直接使用sqlite3。

Clone源码并导入SQL

(MySQL用户名:root 密码:root,数据库名:cnpm,项目和数据放在~/cnpm)


# clone from github
$ git clone git://github.com/cnpm/cnpmjs.org.git $HOME/cnpm
$ cd $HOME/cnpmjs # create mysql tables
$ mysql -uroot -proot -e 'DROP DATABASE IF EXISTS cnpmjs;'
$ mysql -uroot -proot
mysql> use cnpmjs;
mysql> source docs/db.sql

创建并编辑config.js

$ vim config/config.js
 module.exports = {
debug: false,
scopes: ['@superid'],
enableCluster: true, // enable cluster mode
mysqlServers: [
{
host: 'localhost',
port: 3306,
user: 'root',
password: 'root',
}
],
mysqlDatabase: 'cnpm',
enablePrivate: true, // enable private mode
admins: {
admin: 'yourtion@gmail.com',
},
syncModel: 'exist'// 'none', 'all', 'exist'
};

安装依赖并启动运行

$ make install

$ npm run start

检查运行

#open registry and web
# registry
$ curl http://localhost:7001
# web
$ curl http://localhost:7002

看到7001返回json数据,而7002返回HTML源代码就是运行成功。

客户端设置

首先安装cnpm,并设置~/.cnpmrc

$ sudo npm install -g cnpm

$ vim  ~/.cnpmrc

设置registry=http://127.0.0.1:7001(127.0.0.1改为你的服务器ip)

这样就可以正常的publish私有模块以及使用cnpm的缓存服务了。

有几个需要注意的点:

  1. 因为需要创建私有仓库并且保证有权限才能publish模块,所以config.jsenablePrivate必须设为true;
  2. 为了保证私有的库不与公开npm冲突,config.js中需要设置scopes数组为你的公司名或者项目代号,publish的模块名为@superid/myModel

原文链接:https://blog.yourtion.com/cnpm-private-npm.html

【转】使用CNPM搭建私有NPM的更多相关文章

  1. 使用cnpm搭建私有NPM仓库 发布npm包

    关于如何使用cnpm搭建私有的npm仓库看这里→ http://blog.fens.me/nodejs-cnpm-npm/ 我本人还没有机会真正实践操作过,公司的npm仓库是我老大搭建的,我这里仅仅记 ...

  2. NodeJS学习:搭建私有NPM

    工具 verdaccio nrm pm2 特点 verdaccio 的特点: 不同步拉取npm库,占据大量硬盘,没有硬盘被撑爆的问题: 安装配置极其简单,不需要数据库: 支持配置上游registry配 ...

  3. 使用Sinopia搭建私有npm仓库

    使用Sinopia搭建私有npm仓库 在用npm装包的时候,每次都要下载一大堆,慢且不说,npm还老被墙,所以就想到在公司内部搭建npm仓库镜像.大概看了几个,觉得Sinopia最简单也好用,所以就使 ...

  4. 搭建私有npm私库(使用verdaccio)

    搭建 npm 离线服务器 为什么要搭建npm 服务器 原因: 公司内部开发的私有包,统一管理,方便开发和使用 安全性,由于公司内部开发的模块和一些内容并不希望其他无关人员能够看到,但是又希望内部能方便 ...

  5. 利用Sinopia搭建私有npm包

    1.安装sinopia包 npm install -g sinopia 如果是Windows系统用上面的方式安装sinopia很有可能报错,推荐使用下面方式安装: npm install sinopi ...

  6. 【玩转树莓派】使用 sinopia 搭建私有 npm 服务器

    简介 使用 sinopia 的好处是,node系的工程师,内部协作时,使用自有 npm 包,会非常方便:另外,sinopia,会缓存已经下载过的包,可以在相当程度上,加速 npm install 相关 ...

  7. 搭建前端私有npm杂记

    随着前端队伍越来越壮大,项目间共享代码就变得尤为重要.常用的框架/类库没必要在每个项目都放一份,团队内部产出的公共模块也需要有合理的共享机制.现在,用npm管理前端代码已经是业界趋势.楼主尝试用私有n ...

  8. 私有 npm 仓库的搭建

    cnpm 是企业内部搭建 npm 镜像和私有 npm 仓库的开源方案,当企业业务逻辑相关的模块可能不适合开源.这部分私有的模块就可以放在私有 npm 仓库中来管理和维护. 以下为搭建私有 npm 的详 ...

  9. 私有npm计划

    为什么要建立私有npm 提高代码复用程度,增加团队沉淀 剥离项目依赖,工程更加轻量 引用全量更新,支持版本降级 建立模块文档,降低上手难度 全员把关代码质量,无需重复测试 构建工具已成趋势,优化发布流 ...

随机推荐

  1. 【usaco】1.1

    你的飞碟在这儿Your Ride Is Here(难度:入门难度) 题目链接 题目大意 emmmm 输入两个字符串,问他们每个字母的asco码相乘后字符串是否相等. 思路 一道水题?(雾) 错误代码: ...

  2. C#获取本地磁盘信息

    直接上干货简单易懂 //磁盘监控(远程/本地) //需要引用System.Management.dll public class RemoteMonitoring { private static s ...

  3. 理解Redux以及如何在项目中的使用

    今天我们来聊聊Redux,这篇文章是一个进阶的文章,建议大家先对redux的基础有一定的了解,在这里给大家推荐一下阮一峰老师的文章: http://www.ruanyifeng.com/blog/20 ...

  4. xshell安装教程

    Xshell安装使用教程 Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.Xshell 通过互联网到远程主机 ...

  5. Linux重启命令介绍

    下面介绍在 Linux 操作系统中重启和关闭相关的命令:shutdown.reboot.init.halt.poweroff.systemctl,你可以根据需要来选择适合的 Linux 命令关闭或重新 ...

  6. C语言复合数据类型

           C语言数据类型非常丰富,其中结构体的使用非常广泛,也有一点复杂,这一讲我们主要学习结构体的使用方法,同时也会学习到联合.枚举以及typedef的使用,因为结构体最为复杂,使用最广,所以我 ...

  7. mysql库地址

    https://dev.mysql.com/downloads/connector/

  8. 韩国KT软件NB-IOT开发记录V150(2)FOTA差分包生成

    1. 生成差分包

  9. 获取附加在方法上的Attribute

    如下: class Program { static void Main(string[] args) { var methodInfo = typeof(Program).GetMethod(&qu ...

  10. ElasticSearch搜索引擎安装配置拼音插件pinyin

    近几篇ElasticSearch系列: 1.阿里云服务器Linux系统安装配置ElasticSearch搜索引擎 2.Linux系统中ElasticSearch搜索引擎安装配置Head插件 3.Ela ...