如何通过NPM安装私有模块

问题背景
NPM安装公有模块自然就不必说了直接npm install 模块名字就可以了,而之所以可以直接这样安装,原因就是模块是直接发布在npm的公有仓库中的(npm publish),npm直接从仓库通过网络获取到就好了。但是,有的时候我们不希望把代码直接发布到公有仓库中,对于企业来说,内部的非开源模块肯定是不需要发布到公有仓库中的。所以呢,我们就要寻找一种可以让npm安装私有模块的办法,这里所谓的私有模块,就是模块内容(代码)不能被公开访问(下载)到。那么怎么办呢?

解决方案一:购买npm付费账号
这是最简单的办法,根据npm的价格方案,只要是付费用户(不论是哪一种),都可以下载和发布不限量的私有模块。所有的操作都一样,只是npm校验的账号的时候发现你是付费的,那么就允许你发布私有模块,对你来说所有操作都一样。花钱买时间嘛,而且也不贵,最便宜是7美金/月

解决方案二:自建npm仓库
这个方案的意思就是:连仓库都是私有的,模块自然是私有的。这个方案好处就是仓库可以建在自己公司内部,访问速度自然杠杠的,而且想怎么定制就怎么定制。不过呢,构建成本也是有的,而且需要机器。具体可以自行google方法,一般稍微大规模的团队/公司会采取这种办法。

解决方案三:利用npm安装机制和git仓库
这个方案最经济实惠,因为最好的情况下是免费的(是的,你没有听错)。怎么做呢?
首先,npm install 支持 npm install <git remote url>,其中git remote url的格式是<protocol>://[<user>[:<password>]@]<hostname>[:<port>][:/]<path>[#<commit-ish>]。换句话说,假设你的代码托管在bitbucket(可以免费托管无限多的私有项目)中,那么你就可以通过npm install git+ssh://git@bitbucket.org/用户名/项目名.git#版本号。这种方式唯一的不足的地方就是,你必须要确保安装这个私有模块的机器有访问这个私有模块git仓库的权限,换句话说就是:这台机器的公钥必须添加到git仓库/账户中。如果你嫌添加公钥麻烦,也可以通过git+https://username:password@bitbucket.org/用户名/项目名.git#版本号这种方式,但是缺点就是用户名和密码都暴露出来了。

好了,以上就是三种用npm安装私有模块的方法。没有绝对的哪种方式更好的说法,选择适合你的才是最好的!

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 122,400评论 15 533
  • 我们通常通过 npm 来安装和使用开源的模块。但是,通常我们有些私有的模块,不想通过npm发布,但是又想在一些项目...
    wavesnow阅读 1,220评论 0 4
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 2,855评论 2 33
  • 在这个一切量化、崇尚科学的时代,“吃”成了一件罪恶之事。每次在吃之前,你要认真计算面前食物的糖分、脂肪和热量,然后...
    阿秋的冬天阅读 183评论 0 4
  • 三年后的一个清晨。 流光皇城内,恢弘的剑道场中,只见道道银光划过,快如闪电,片刻之间,巨大的木俑就分崩离析,四散落...
    琉璃羽白阅读 82评论 0 1