在registry中使用myproject / .npmrc

如何在我的项目中设置一个.npmrc文件,我可以定义我自己的私人registry? 我不想在我的用户configuration.npmrc中进行这种configuration。 其他开发人员应该能够git clone该项目并运行npm install

这是我迄今为止:

 // .npmrc registry=https://npm.fury.io/AUTH_TOKEN/me/ // package.json: { "name": "webapp", "description": "", "version": "1.0.0", "private": true, "dependencies": { "jquery": "1.2.3", "myPrivateLibFromNpmFury": "0.0.4" } } 

npm install myPrivateLibFromNpmFury

回报

npm ERR! 404 Registry returned 404 for GET on https://registry.npmjs.org/myPrivateLibFromNpmFury

正如@Paulpro和@Alexey B指出的那样,它的大部分工作已经完成,但是我不能马上看到它,也许是因为我没有正确地重装我的bash环境。 但之后,我遇到了与registryurl造成的npm outdated其他问题。 事实certificate,npm只能有一个registryurl(这是非常疯狂的),如果你想使用私人和公共npm模块,你必须通过你的私人registry代理公共NPM模块registry。 幸运的是这是什么fury.io支持,所以在我的情况,而不是使用这个:

 //.npmrc registry=https://npm.fury.io/AUTH_TOKEN/me/ 

我必须使用这个:

 //.npmrc registry=https://npm-proxy.fury.io/AUTH_TOKEN/USER_NAME/ 

更新 :这是可能的解决问题与NPM只有一个registry。 首先,你必须添加到你的私人包的范围 。 使用.npmrc你现在可以链接注册的范围,你不再需要任何代理。

 //.npmrc @project_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/ @project_b:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/ @company_a:registry=https://npm.fury.io/AUTH_TOKEN/USER_NAME/ 

注意到文档

每个项目的configuration文件

在项目中本地工作时,项目根目录中的.npmrc文件(即,node_modules和package.json的同级)将设置特定于此项目的configuration值。

请注意,这只适用于您正在运行npm的项目的根目录。当您的模块发布时,它不起作用。 例如,您不能发布强制自己全局安装或位于其他位置的模块。

我试图创build你在问题中指定的文件(package.json和.npmrc),一切工作正常。 也许你在某个地方犯了一个错字?

 frgt$ npm i myPrivateLibFromNpmFury --verbose npm info using npm@3.3.12 npm info using node@v5.1.1 npm verb request uri https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury npm verb request no auth needed npm info attempt registry request try #1 at 14:36:10 npm verb request id 23f09acc4e7021c7 npm http request GET https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury npm http 403 https://npm.fury.io/AUTH_TOKEN/me/myPrivateLibFromNpmFury 

您应该使用无缝代理:

 registry=https://npm-proxy.fury.io/AUTH_TOKEN/me/