07月21, 2016

记一次搭建私有npm库

之前和主管提过要建立公司的npm库,今天折腾了一下,算是弄的七七八八。

前公司用的是基于cnpm的方式来建立私有库,而我的相对来说简单一些,用的是sinopia

参考文章:使用Sinopia搭建私有的npm仓库

其实上面的文章,该提的已经都差不多提了,此篇文章是记录我在安装中的一些问题

node在linux下的安装

这个之前在我的文章中写过,先装nvm,再通过nvm install 版本号来下载node

但今天遇到的情况是nvm install 版本号,回车,3分钟过去了,一点反应都没有。于是ping了一下github.com,发现会丢包。

于是采取了最古老的方式,下载压缩包

//判断当前的linux是32位,还是64位,下载对应的包
getconf LONG_BIT

完了之后,解压,很多网上的教程示例如下:

#  tar xvf node-v0.10.28.tar.gz 
#  cd node-v0.10.28 
#  ./configure 
# make 
# make install 
# cp /usr/local/bin/node /usr/sbin/

结果发现./configure出错,目录不存在,一脸懵逼。

继续找了一下文章,结果真让我找到了:linux 下部署nodejs(两种方式)

  • 先软链接,ln -s
  • 环境变量配置

npm install 安装不上

这是一个悲伤的话题,但咱不怕,根据错误的提示:

npm ERR! network tunneling socket could not be established, cause=connect ETIMEDOUT 198.105.254.228:8080

搜索到了npm error: tunneling socket could not be established, cause=connect ETIMEDOUT

然后只要:

npm config rm proxy
npm config rm https-proxy

为了保险,再加上

npm config set strict-ssl false

大功完成。。说真的,我也不知道为什么会有proxy代理,但重要的是把问题给解决掉。

sinopia相关

  • 安装
npm install -g sinopia
  • 改sinopia的config配置文件,让其他机器可以访问

sinopia的config配置一开始让我找了好久,后来才发现可以通过

cd ~/.config

看到sinopia目录,它下面有个config.yaml文件,在最后一行添加:

listen: 192.168.150.155:8000

这个地址一般是内网IP(或者写成0.0.0.0)+端口号,不确定不加行不行,有兴趣的可以尝试。

改完配置之后,就可以启动sinopia了

sinopia

我们在客户端就可以访问上面的192.168.150.155:8000

web效果

  • 改用pm2的方式,来让后台启动服务

开始的时候,我用的是

pm2 start sinopia

结果发现死活不对,找了相关文章才知道:

pm2 start `which sinopia`

再就是pm2的常用三条命令:

pm2 start xxx
pm2 stop 
pm2 delete

发布npm包

  • 通过nrm,nrm可以add资源地址,然后可以切换到本地源

  • 通过.nrmrc配置文件,注意里面的写法不是json格式,而是直接

registry =http://192.168.150.155:8000

再就是一些npm的命令了

npm adduser //添加用户
npm login //切换用户或者使用账号登录
npm publish //注意每次发布前把version给改掉,在publish之前先发布到git或者gitlab

这里不得不提的是npm unpublish

npm unpublish 模块@版本号

个人感觉如果上传了好几百个版本号,想一下子移除整个模块,MS很麻烦。

本文链接:www.my-fe.pub/post/how-to-build-own-npm.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。