北漂IT民工 的博客

npm自建服务器

nodejs开发给开发者带来的最大的好处是丰富多彩的各种npm包。我们经常会很高兴某个包已经被其他的开发者开发完成,并且质量也很高,我们直接拿过来用就可以了。这也是很多开发者喜欢nodejs的原因。即使是曾经包机制最完善的ruby语言,也会发展他已经远远落后于nodejs的npm了。

除了上面讲到的开放包,npmjs.com也提供私有包管理方案,每个月只要交10几美元就可以轻松建立自己的私有npm库了。

在了解了这么多npm的好处之后,其实我们发现还是有不太满意的地方。比如需要每月交钱,比如npmjs.com有时候会被GFW墙掉,速度非常慢。

特别的,如果我们有私有的包,不想公开,也不想交钱,那么这个时候我们就可以通过自建私有的服务器来实现。

实现的过程很简单,就是通过sinopia包搭建一个服务器。

sinopia项目地址:https://github.com/rlidwka/sinopia

步骤如下:

  1. 安装sinopia

    1
    $ npm install -g sinopia
  2. 启动运行sinopia
    可以默认启动

    1
    $ sinopia > /dev/null 2>&1

也可以指定IP与端口

1
$ sinopia -l 0.0.0.0:8080 > /dev/null 2>&1

  1. 访问sinopia
    浏览器打开: http://localhost:4873/

  2. 添加用户

    1
    npm adduser --registry http://localhost:4873/
  3. 登录npm服务器

    1
    npm login --registry http://localhost:4873/
  4. 发布npm包

    1
    npm publish --registry http://localhost:4873/
  5. 下载npm包
    xxx是你发布的包名。

    1
    npm install xxx --registry http://localhost:4873/

通过以上几个命令你就可以在你的服务器上玩起来了。