Que*_*tin 34 package-managers package node.js npm
我正在使用node.js编写许多代码(供内部使用),并希望将模块(打包为npm)存储在软件包存储库中,以便将每个分发存储到它们将安装在的各种机器上.
理想情况下,我想要一个类似于Debian的apt存储库的解决方案,我可以在其中运行私有存储库服务器并配置npm以使用要安装的存储库列表(当安装"foo"时,如果我的私有知道"foo"服务器从那里安装它,否则从公共服务器安装它).
但是,看起来npm registry配置键只接受一个URL.
有没有办法实现我想要的?
我能找到的最接近的是:
Chr*_*ase 32
我只是为我的工作做好准备.这是我做的:
设置空的NPM注册表:我按照npmjs.org的这个分支的说明,这增加了很多改进的文档.
设置Kappa:我使用了Kappa,一个来自Paypal的优秀npm代理.(我猜他们对大多数想要私有存储库的人有一个非常相似的用例;这正是我想要的).
设置npm_lazy(可选):我想要一个很好的缓存经常使用的包,以防npmjs.org失败,所以我在整个事物的前面添加了npm_lazy作为缓存层.
整件事花了两天时间(ish)起床和跑步.作为旁注,如果您担心人们意外地进入公共注册表,我建议您将其添加到package.json:
"publishConfig": { "registry": "http://my-registry.example.com" },
这真的只是一点偏执狂; 一旦你设置你的npm指向你的Kappa/npm_lazy实例,Kappa就会为你处理发布到你的私人存储库.
注意:Kappa只会在其配置中发布到第一个存储库.如果您需要发布到您的私人注册表和公众,您将需要制定自己的解决方案.
在package.json中,您可以使用指向有效npm压缩模块的任何URL.我使用的s3的桶名很难猜到.
npm pack
s3cmd put *.tgz s3://path-to-your bucket
Run Code Online (Sandbox Code Playgroud)
S3只是一个例子,您可以使用任何可以将文件放在Web服务器上的方法,它甚至可以通过基本身份验证来保护.
| 归档时间: |
|
| 查看次数: |
16248 次 |
| 最近记录: |