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

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

为什么企业需要私有NPM

主要有如下理由:

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

cnpm的特点

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

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: ‘[email protected]‘,
    },
    syncModel: ‘exist‘
  };

安装依赖

make install

启动

; npm run start

Starting cnpmjs.org ...
Start nodejs success. PID=27175

好了,部署完成!

客户端设置

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

首先安装cnpm客户端:

npm install -g cnpm

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

echo "#lnpm alias\nalias 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模块。如果你的企业需要灵活的权限控制,需要自行开发。

时间: 2024-10-09 00:32:06

使用cnpm搭建企业内部私有NPM仓库的相关文章

搭建公司私有npm仓库

1.安装curl.git 2.安装node 3.下载npm 4.安装mysql,创建cnpmjs数据库 5.下载cnpm文件,进行npm install 6.进入cnpmjs.org,设置数据库并添加.更改配置文件 7.运行 如果出现了以下错误,说明config目录下的两个端口号7011,7022被占用,需换端口号. 运行之后,打开浏览器,如果出现以下画面则说明成功: 8.测试使用 搭建完成之后,我们可以在自己本地下载一下看能否成功: 全局安装cnpm--npm install cnpm -g:

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

关于如何使用cnpm搭建私有的npm仓库看这里→ http://blog.fens.me/nodejs-cnpm-npm/ 我本人还没有机会真正实践操作过,公司的npm仓库是我老大搭建的,我这里仅仅记录关于如何发布npm包以及在这过程中出现的问题以及解决的方案. 因为官方的npm上的模块是完全开源,但是公司自己项目有些模块与业务或者逻辑以及一些配置模块肯定不能开源啊,所以需要搭建私有的npm仓库. 1.准备工作 首先安装好npm 以及 cnpm . 现在安装node.js 里会一起安装好npm.

Screwturn搭建企业内部wiki

企业内部WIKI搭建 本文所使用的是Screwturn 基于asp.net webform和Sql server的. 仅仅要把本文资源下载下来,直接用IIS部署,然后更改web.config的connectionString就能够使用. 资源页: http://download.csdn.net/detail/lglgsy456/7932149 部署好之后更改connectionString.然后注冊一个用户,到数据库里面把这个用户变为administrator(做程序的应该都懂吧,表结构非常e

手动搭建Docker本地私有镜像仓库

实验环境:两个Centos7虚拟机,一个是Server,用作客户端,另一个是Registry,用作Docker私有镜像仓库. 基础配置 查看一下两台虚拟机的IP地址 Server的IP地址是192.168.134.151. Registry的IP地址是192.168.134.150. 使用setenforce 0临时关闭SElinux. 打开Server和Registry的内核转发功能 编辑配置文件/etc/sysctl.conf,添加下面的内容: net.ipv4.ip_forward = 1

搭建企业内部yum仓库(centos6+centos7+epel源)

yum仓库服务端配置 1. 创建yum仓库目录 mkdir -p /data/yum_data/cd /data/yum_data/#可以上传rpm包到此目录,此目录下面还可以包括文件夹 2. 安装createrepo软件[[email protected] yum_data]# yum -y install createrepo 3. 初始化repodata索引文件createrepo -pdo /data/yum_data/ /data/yum_data/ 4. 提供yum服务# 可以用Ap

用Windows Server 2003搭建企业内部邮件服务器

公司要搭建一个邮件服务器,方便内部邮件的发送.而且要求每位员工都可以使用自己的账号和密码.领导将这份工作交给我,不过,这可难不倒我.只要借助Windows Server 2003就可以轻松建起内部邮件服务器. 1.在服务器上安装pop3.smtp.nntp.dns. 开始-控制面板-添加/删除windows组件 选择dns服务 选择smtp和nntp服务 选择pop3服务 进行相应的安装. 2.配置dns服务,在dns服务器上创建相应的区域a.com. 开始-程序-管理工具-dns 3.配置po

Proxmox【超融合】实现低准入高效构建企业内部私有云平台,让企业轻松步入云时代

"超融合"这个概念,可以简单理解为:将虚拟计算平台和存储融合到一起,将每台服务器里面自带的硬盘组成存储池,以虚拟化的形式提供数据中心所需要的计算.网络.安全以及存储等IT基础架构.在这里,也讲解一下超融合相对于传统虚拟化方案的优势. 横向与纵向的扩展性顾名思义,横向扩展就是当发现存储和计算资源不够用了,按需添加服务器即可.比如,当用户的共享存储写满了,用户不得不花大价钱去购买一个新的存储机柜,然而此时存储机柜的资源利用率是很低的.而使用超融合方案的用户,他们只需要投入较少的费用去购买一

MacPro 使用cnpmjs搭建私有npm服务

前言 前段时间看到npm私有库cnpmjs.org,一直想试一下怎么搭建,直接就拖到现在了,太懒! 先简单介绍下cnpmjs.org吧: cnpm的意思是Company npm.根据github上的介绍,翻译过来大概是: 基于koa,MySQL和 Simple Store Service的企业npm私有库和web端. 目标是为私人NPM提供一个低成本的维护和易于使用的解决方案. 利用cnpmjs.org你可以: 1.搭建一个企业的npm私有库 2.搭建一个npm的镜像 3.搭建一个完全独立于np

【转】使用CNPM搭建私有NPM

最近的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