CNPM搭建私有的NPM服务
来源:互联网 发布:mac文件不想放在桌面 编辑:程序博客网 时间:2024/05/06 23:03
CNPM搭建私有的NPM服务
- 前 言
随着Nodejs开发的项目越来越多,Node项目管理就成了一个需要思考的问题了。如果所有项目都开源统一用 NPM 进行管理也没什么问题,但总有一些是我们不希望的完全开放的代码,作为企业是核心秘密保留在公司内部,这个时候就需要在公司内网也搭建一套 NPM 依赖管理系统。
CNPM正好就提供了这个功能。从Github上CNPM的主页看,CNPM由国内Alibaba团队开发维护。 - 目 录
CNPM是什么?
搭建CNPM的服务器
设置私有注册库的三种方法
CNPM的客户端使用 - CNPM是什么?
CNPM 是一个Nodejs的库,致力于打造私有的 NPM 注册服务。当然,除了私有库功能以外,CNPM官网 (http://cnpmjs.org/) 还提供了NPM同步的服务。
CNPM官方发布的架构图:
从CNPM的架构图中,我们可以看出CNPM是对NPM做的镜像服务,CNPM会定期同步NPM的资源库,同时CNPM支持发布私有的库,这样就非常方便地集成了公有库和私有库,对于公司内部的开发者来说,基本感觉不到两种库的区别。
另外,我们使用NPM下载依赖包时,经常性地会遇到一些包下载失败的情况,主要原因了NPM的注册服务器在国外,国内的网络环境访问国外的IP并不是太好。所以,直接配置到国内的NPM镜像,可以减少NPM下载出错机会。
比如,最近发生的NPM下载时的“No compatible version found”错误,如果不想升级NPM的环境,那么你还选择用CNPM去进行依赖管理,关于错误的详细介绍,请参考文章 NPM下载出错 No compatible version found
2. 搭建CNPM的服务器
从官方文档中,我们看到CNPM服务器环境,只需要Node(0.11.12) + MySQL(>= 0.5.0),另外我们还需要Linux的环境,接下来就让我们动手自己搭建一个私有NPM的服务器。
我的系统环境:
• Linux: 3.10.0-229.11.1.el7.x86_64 UTC 2015 ,GNU/Linux
• Node: v6.9.0
• Npm: v4.4.1
• MySql: v15.1
• IP:192.168.0.187
以下操作在192.168.0.4远程linux下操作
通过github下载项目源代码
下载项目,进入目录
~ git clone https://github.com/cnpm/cnpmjs.org.git
~ cd cnpmjs.org
在我们开始安装依赖包之前,在项目目录下升级NPM
~ npm install npm -g
安装项目依赖
~ npm install
创建MySQL数据库,我本地的MySQL用户名为root,密码是byu10010
#进入myssql
~ mysql -u root -p byu10010 (提示输入密码)
进入mysql后,检测原来是否含有cnpmjs_test数据库
DROP DATABASE IF EXISTS cnpmjs_test;
创建数据库
CREATE DATABASE cnpmjs_test;
需要数据库源,sql语句文件在项目里如下,执行sql语句
>docs/db.sql
查看该数据库下刚刚创建的表格
show tables;
成功执行后看到如下,创建成功
+———————–+
| Tables_in_cnpmjs_test |
+———————–+
| dist_dir |
| dist_file |
| download_total |
| module |
| module_deps |
| module_keyword |
| module_log |
| module_maintainer |
| module_star |
| module_unpublished |
| tag |
| total |
| user |
+———————–+
接下来修改配置文件,很重要
~vi ./config/index.js
database: {
db: ‘cnpmjs_test’,
username: ‘root’,
password: ‘byu10010’,
………
}
dialect: ‘sqlite’,
启动CNPM服务器(默认会打开两个端口,7001用于NPM的注册服务,7002用于Web访问)
~ node dispatch.js
OK,回到本机
通过浏览器打开:http://192.168.0.4:7002
在搜索框中搜索ape-algorithm,得到如下结果:
点击SYNC,进入如下界面,等待加载完成:
进入本机项目文件,这里是nj-nova为例,查看配置列表
$ npm config list
; cli configs
metrics-registry = “https://registry.npmjs.org/
”
scope = “”
user-agent = “npm/4.4.1 node/v6.2.0 win32 x64”
; userconfig C:\Users\byu-5.npmrc
registry = “https://registry.npmjs.org/
“
; builtin config undefined
prefix = “C:\Users\byu-5\AppData\Roaming\npm”
; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\nj-nova
; HOME = C:\Users\byu-5
; “npm config ls -l” to show all defaults.
registry属性是指向NPM的官司位置https://registry.npmjs.org/,我们可以通过npm config set registry命令来修改这个配置。
~ npm config set registry http://192.168.0.4:7001/
再次执行npm config list 查看上面的红色字体部分是否修改
设置完成,以后在本机执行npm install 都是从内网192.168.0.4上拉取npm
- CNPM搭建私有的NPM服务
- CNPM搭建私有的NPM服务
- 使用CNPM搭建企业内部私有的NPM库
- 使用CNPM搭建企业内部私有的NPM库
- 使用cnpm搭建企业内部私有NPM仓库
- CNPM私有服务器搭建
- 使用sinopia搭建私有npm服务
- 国内的npm—cnpm
- npm到cnpm的学习
- cnpm与npm的区别
- npm和cnpm的区别
- npm和cnpm的简介
- npm cnpm
- npm cnpm
- npm->cnpm
- 专业安装全局的cnpm,查看node、npm、cnpm版本
- 安装npm cnpm bower的操作方法
- nodejs与npm更新、cnpm的安装
- quartz定时,重复的问题
- c++中namespace和前置声明
- ES6(六) promise对象
- HDU P2106 JAVA
- React组件属性props部类(propTypes)校验
- CNPM搭建私有的NPM服务
- Druid的发送数据和查询数据
- Vue如何添加重复数据
- 关于 Android中的插件化开发,dex分包,热修复(Tinker)的思考(一)
- Effective Java----1
- tms320c6747的I2C模块
- 浅谈php设计模式
- Win7下qt5.3.1+opencv2.4.9编译环境的搭建
- myeclipse alt+/ 代码不提示