如何在项目中设置.npmrc文件,以便定义自己的私有注册表?我不希望在我的用户配置.npmrc中有这样的配置。每个其他开发人员都应该能够只对项目执行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
发布于 2016-01-18 22:06:25
正如@Paulpro和@Alexey B.所指出的,它的大部分已经可以工作了,但我无法立即看到它,可能是因为我没有正确地重新加载我的bash环境。但在那之后,我遇到了npm outdated的其他问题,这是由注册url引起的。事实证明npm只能有一个注册表url (这很疯狂),如果你想使用私有和公共npm模块,你必须通过你的私有注册表代理公共npm模块注册表。幸运的是,fury.io支持这一点,所以在我的例子中,不要使用下面的代码:
//.npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/我必须使用这个:
//.npmrc
registry=https://npm-proxy.fury.io/AUTH_TOKEN/USER_NAME/更新:可以解决这个问题(npm仅绑定到一个注册表)。首先,您必须向您的所有私有包添加一个scope。现在有了.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/发布于 2016-01-12 17:37:48
注意到文档
每项目配置文件
当在项目中本地工作时,项目根目录中的.npmrc文件(即,node_modules和package.json的同级)将设置特定于该项目的配置值。
请注意,这只适用于运行npm的项目的根目录。当您的模块发布时,它不起作用。例如,您不能发布强制其自身全局安装或安装在不同位置的模块。
我尝试创建您在问题中指定的文件(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发布于 2016-01-12 01:26:45
您应该使用无缝代理:
registry=https://npm-proxy.fury.io/AUTH_TOKEN/me/https://stackoverflow.com/questions/34652563
复制相似问题