在Mac上完成了搭建流程,Windows可能稍有不同。
目前来说NPM生态事实上完成了前端模块化系统的必要准备,因此如果你厂的业务会有Private的需求,这个Point会有两个方案给你选择:
- 基于cnpmjs.org搭建
- 直接购买npm company服务,一个人/一个月/7美金
其实在Github上还有另外一个方案:【sinopia】,只是这个库已经不在维护,也就放弃了选择这个方案。
吐槽一下cnpmjs.org的Getting Start,《Deploy a private npm registry in 5 minutes》使用的是sqlite3,而exampless使用的是mysql,印证一些思考时,走了些弯路。(建议:统一起来会比较好)
创建一个项目:
1 |
$ mkdir web-private-npm && cd web-private-npm |
安装mysql:
1 |
$ brew install mysql |
本地mysql可以不设置root密码,免得忘记。
创建config.js和index.js:
1 |
$ touch config.js |
在docs
目录中有db.sql文件,用于创建表字段,最好copy到你的项目中,因为cnpmjs.org包中的db.sql是个空文件。
创建数据库和表字段:
1 |
$ mysql -uroot -e 'CREATE DATABASE private_npm' |
通过cnpmjs.org
的源码找到了两个start
类的函数:
以及cnpmjs.org
自己的配置文件。
大部分的时候我们基本就是在学习怎么配置它:
1 |
module.exports = { |
然后我们可以使用这两个函数来启动cnpmjs.org:
1 |
const cnpm = require('cnpmjs.org'); |
1 |
$ node index.js |
演示
偷懒的给大家演示一下,正式环境不要像我这样。
1 |
$ vim ~/.npmrc |
直接在.npmrc
中配置 registry=http://localhost:7001/
登录本地的npm:
1 |
$ npm login |
用户名和邮箱输入在config.js文件中配置好的,密码随便填。
创建一个项目:
1 |
$ mkdir test && cd test |
将package.json文件中的name修改为@icepy/test
上传:
1 |
$ npm publish |
安装:
1 |
$ mkdir test1 && cd test1 |