首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在注册表中使用myproject/.npmrc

在注册表中使用myproject/.npmrc
EN

Stack Overflow用户
提问于 2016-01-07 18:18:04
回答 3查看 85.6K关注 0票数 47

如何在项目中设置.npmrc文件,以便定义自己的私有注册表?我不希望在我的用户配置.npmrc中有这样的配置。每个其他开发人员都应该能够只对项目执行git clone操作并运行npm install

这就是我到目前为止所知道的:

代码语言:javascript
复制
// .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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-18 22:06:25

正如@Paulpro和@Alexey B.所指出的,它的大部分已经可以工作了,但我无法立即看到它,可能是因为我没有正确地重新加载我的bash环境。但在那之后,我遇到了npm outdated的其他问题,这是由注册url引起的。事实证明npm只能有一个注册表url (这很疯狂),如果你想使用私有和公共npm模块,你必须通过你的私有注册表代理公共npm模块注册表。幸运的是,fury.io支持这一点,所以在我的例子中,不要使用下面的代码:

代码语言:javascript
复制
//.npmrc
registry=https://npm.fury.io/AUTH_TOKEN/me/

我必须使用这个:

代码语言:javascript
复制
//.npmrc
registry=https://npm-proxy.fury.io/AUTH_TOKEN/USER_NAME/

更新:可以解决这个问题(npm仅绑定到一个注册表)。首先,您必须向您的所有私有包添加一个scope。现在有了.npmrc,您可以链接作用域的注册表,并且不再需要任何代理。

代码语言:javascript
复制
//.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/
票数 42
EN

Stack Overflow用户

发布于 2016-01-12 17:37:48

注意到文档

每项目配置文件

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

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

我尝试创建您在问题中指定的文件(package.json和.npmrc),一切正常。也许你在什么地方打错了字?

代码语言:javascript
复制
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
票数 16
EN

Stack Overflow用户

发布于 2016-01-12 01:26:45

您应该使用无缝代理:

代码语言:javascript
复制
registry=https://npm-proxy.fury.io/AUTH_TOKEN/me/
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34652563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档