脚本宝典收集整理的这篇文章主要介绍了

使用cnpm搭建企业内部私有NPM仓库

脚本宝典小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助你少写一行代码,多一份安全和惬意。

cnpm

cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题

为什么企业需要私有NPM

主要有如下理由:

  • 确保npm服务快速、稳定:对于企业来说,上线生产系统的时候,需要花半小时甚至更久等待npm模块依赖安装完毕,是不可接受的。部署镜像后,可以确保高速、稳定的npm服务。
  • 发布私有模块:官方的npm上的模块全部是开源的。一些与企业业务逻辑相关的模块可能不适合开源。这部分私有的模块放在私有NPM仓库中,使用起来各种方便。
  • 控制npm模块质量和安全:npm上的模块质量参差不齐,搭建私有仓库,可以更严格地控制模块的质量和安全,只有经过审核的模块才允许被加入私有仓库。

cnpm的特点

  • 压缩包等文件从数据库中分离,放在CDN上,减轻了数据库的压力,提高了访问速度。
  • 使用MySQL替换了CouchDB,更容易部署。同时由于大部分开发者更熟悉MySQL,因此架设起来更方便。
  • CDN和MySQL都可以方便地扩展。

cnpm架构

5分钟部署

部署cnpm只需5分钟。

依赖

  • Node
  • MySQL
  • Redis
  • qiniu CND (或其他CDN)

部署过程

获取代码

git clone git://github.com/fengmk2/cnpmjs.org.git $HOME/cnpmjs.org cd $HOME/cnpmjs.org 

创建MySQL表

; mysql -u yourname -p mysql> use cnpmjs; mysql> source docs/db.sql 

然后编写配置文件config/config.js

module.exports = {     debug: false,     enableCluster: true, // enable cluster mode     mysqlServers: [       {         host: 'localhost',         port: 3306,         user: 'cnpmjs',         password: 'cnpmjs123',       }     ],     mysqlDatabase: 'cnpmjstest',     redis: {       host: 'localhost',       port: 6379,     },     nfs: null, //use your own CND here     enablePrivate: true, // enable private mode, only admin can publish, other use just can sync package from source npm     admins: {       admin: 'admin@cnpmjs.org',     },     syncModel: 'exist'   }; 

安装依赖

make install 

启动

; npm run start  Starting cnpmjs.org ... Start nodejs success. PID=27175 

好了,部署完成!

客户端设置

服务跑起来之后,企业员工需要在自己的电脑上配置下客户端。

首先安装cnpm客户端:

npm install -g cnpm 

在自己的脚本的启动文件(例如.zshrc.bashrc)中添加别名:

echo "#lnpm aliasnalias lnpm='cnpm --registry=http://localhost:7001  --registryweb=http://localhost:7002  --cache=$HOME/.npm/.cache/lnpm  --userconfig=$HOME/.lnpmrc'" >> $HOME/.zshrc && source $HOME/.zshrc 

注意用自己的仓库信息替换上面命令的相关部分。

之后就可以用lnpm命令访问企业的内部NPM了,各种接口和NPM一样。

注意,目前cnpm的权限控制比较简单,只有admin用户有权publishNPM模块。如果你的企业需要灵活的权限控制,需要自行开发。

参考


本文由SegmentFault根据 NodeParty 2013 上 @dead-horse 的分享整理

总结

以上是脚本宝典为你收集整理的

使用cnpm搭建企业内部私有NPM仓库

全部内容,希望文章能够帮你解决

使用cnpm搭建企业内部私有NPM仓库

所遇到的程序开发问题,欢迎加入QQ群277859234一起讨论学习。如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典网站推荐给程序员好友。 本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。

80%的人都看过