您的位置:首页 > 产品设计 > 产品经理

npm内网源搭建

2015-12-09 18:51 405 查看
前段时间用npm在公司搭建了npm内网源,把搭建过程及踩的坑记录一下。

准备工作:

安装node及npm,node版本4.2.2+(切记,4以下的版本是不行的)

首先下载源代码:

git clone git://github.com/cnpm/cnpmjs.org.git


如果没装git,直接去https://github.com/cnpm/cnpmjs.org/ 下载zip吧。

安装依赖,可从淘宝npm源安装加快速度:

npm install --registry=http://registry.npm.taobao.org


更改config,在cnpmjs.org/config/index.js,下面列出需要更改及留意的项目:

enablePrivate: true, // 设置为true
scopes: [ '@xxx', '@tools', '@doc'] // 私有源支持的模块前缀,可以自由设置(cnpm的要求,避免与官方模块冲突)
syncModel: 'exist', // 只同步已有模块,all可以开启全量同步,但资源增长太快需慎重
admins: { // 注意,添加用户时,请添加该处配置的用户,不然不能发布模块的
// name: email
fengmk2: 'fengmk2@gmail.com',
admin: 'admin@cnpmjs.org',
dead_horse: 'dead_horse@qq.com',
},
database: {
db: 'cnpmjs_test',
username: 'root',
password: 'mysql',
// - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'
dialect: 'mysql', // 我用的mysql,用sqlite启动抛异常,不知道为什么
...
},


好了,配置大概就这样。

如果没得mysql(其它数据库类型有成功的可以分享下),就安装一下mysql

http://www.mysql.com/downloads/


mysql解压即可使用,很方便的。cmd进入MySQL Server 5.5/bin目录,运行

mysqld


mysql服务就启动了。另外开一个控制台进入bin目录,设置root密码(不设置似乎无法远程连接成功,被坑过。有mysql大神可以解解惑)。

mysqladmin -u root password "mysql";


然后登录:

mysql -u root -p mysql


创建数据库:

create database cnpmjs_test;
use cnpmjs_test;


创建表,将cnpmjs.org/doc/db.sql中的内容复制出来在mysql中执行一遍即可

好了,mysql设置完成,可以启动cnpm服务了。cmd进入cnpmjs.org

node dispatch.js


等成功启动后,n串提示后完

127.0.0.1:7002


即可看到内网源的web页面了,后台自动开始同步官方模块。

安装完成,下面说说内网源的使用了。

安装cnpm客户端:

npm i cnpm -g


设置cnpm源为内网源

cnpm config set registry="http://127.0.0.1:7001"


好了,现在可以通过cnpm使用内网源了,支持所有npm命令~

模块安装就不多说了,和npm一样

cnpm install 模块名称


说说关键的模块发布。模块发布需要登录,先创建用户:

cnpm adduser


依次填写用户名、密码、邮箱即可,用户名与邮箱与config中的admin配置对应。

然后登录:

cnpm login


按提示依次输入即可。

然后进入你写的模块目录,注意模块名称必须带前缀,如@xxx/name,与config中的scopes配置对应,然后执行:

cnpm publish


好了,模块发布完成!

以上方法是经过验证的,不会有问题。如果未能成功,可检查一下:

1、命令(cmd控制台)是否是以管理员身份运行

2、npm全局路径或环境变量是否有问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: