如何添加 .npmrc 文件?

Posted

技术标签:

【中文标题】如何添加 .npmrc 文件?【英文标题】:How can I add a .npmrc file? 【发布时间】:2017-08-10 04:53:10 【问题描述】:

我在我的 Mac OS Sierra 上安装了节点。我在工作中使用 Windows,所以我在节点文件夹中有一个 .npmrc 文件,但我似乎在 mac 中找不到它。 问题是我想添加格式的注册表

    "scope=rohit-project@rohit-aquila:registry=https://registry.npmjs.org/
    //registry.npmjs.org/:_authToken=03408522-4rfca-dff4f-dfsf-43863gfe3492"

如何添加它,以便我可以通过在 MAC OS Sierra 上运行 npm install 来为我的项目安装依赖项和模块。

我简单地创建了一个 .npmrc 文件并添加了上面的代码...然后运行 ​​npm install 我得到以下错误

    rohitsrivastava$ npm install
    npm ERR! Darwin 16.4.0
    npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
    npm ERR! node v7.7.3
    npm ERR! npm  v4.1.2
    npm ERR! code E404

    npm ERR! 404 Not found : @rohit-project/notes
    npm ERR! 404 
    npm ERR! 404  '@rohit-project/notes' is not in the npm registry.
    npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
    npm ERR! 404 It was specified as a dependency of '@rohit-project/mega'
    npm ERR! 404 
    npm ERR! 404 Note that you can also install from a
    npm ERR! 404 tarball, folder, http url, or git url.

【问题讨论】:

.npmrc 是在您 npm login 时创建的,但您应该能够简单地在 Users/rohit/.npmrc (取决于用户名)创建一个包含该内容的文件。我希望那不是你真正的 authToken.. 称我为偏执狂,但是当您可以在帖子中添加任何额外信息以便其他人也可以提供帮助时,我认为您没有理由要求我单击指向 Google 文档的链接。 (gizmodo.com/…) @lecstor 对不起。昨天刚开始使用 Stack Overflow。 np。行尾是否正确?恐怕我没主意了。我不认为这个文件在 Windows 和 Mac 之间会有任何其他显着差异。 那是你的访问令牌吗?可能想去npmjs.com/settings/binaryspike/tokens 并删除它现在它是公开的。 【参考方案1】:

这里有几点不同:

    .npmrc 文件在哪里创建。 如何下载私有包

运行 npm config ls -l 将显示 npm 的所有隐式设置,包括它认为放置 .npmrc 的正确位置,因为这取决于环境/操作系统。但如果您从未登录(使用npm login),它将为空。只需登录即可创建。

另一件事是#2。实际上,您可以通过在 NPM 包的根目录中放置一个 .npmrc 文件来做到这一点。然后 NPM 将在身份验证时使用它。它还支持从您的 shell 进行变量插值,因此您可以执行以下操作:

; Get the auth token to use for fetching private packages from our private scope
; see http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules
; and also https://docs.npmjs.com/files/npmrc
//registry.npmjs.org/:_authToken=$NPM_TOKEN

指针

http://blog.npmjs.org/post/118393368555/deploying-with-npm-private-modules https://docs.npmjs.com/files/npmrc

【讨论】:

所以npm 知道如何阅读.npmrc 行如//registry.npmjs.org/:_authToken=$NPM_TOKEN?这看起来与key = value 格式的其他行不同。我只是好奇为什么这条线是不同的。我看到这篇博客文章显示了它,但它没有解释它是如何工作的:blog.npmjs.org/post/118393368555/… 你可以在这里找到答案:***.com/a/53281483/2839274 请注意,我必须升级我的 NPM 版本,因为我使用的版本不允许使用 aliass @Jacksonkr 不知道为什么这是相关的。我们在这里不使用alias 命令,AFAIK。您的“别名”问题如何影响此答案中的任何内容? @oligofren 我的评论并不意味着批评,更多的是“如果您发现自己将此答案用作潜在的解决方案并且像我一样遇到关于别名的问题,这里是一个提醒检查你的 NPM 安装是否有潜在的更新"【参考方案2】:

这个问题是因为你有一些本地或私人包。 要访问这些包,您必须为此问题创建 .npmrc 文件。只需参考以下链接即可找到您的解决方案。 https://nodesource.com/blog/configuring-your-npmrc-for-an-optimal-node-js-environment

【讨论】:

【参考方案3】:

假设您使用 VSTS 运行 vsts-npm-auth -config .npmrc 以生成带有身份验证令牌的新 .npmrc 文件

【讨论】:

它只适用于 Windows 和非 bash 环境 自 2017 年起,VSTS 已弃用。 " 带有 Azure DevOps 扩展的 Azure CLI 已取代 VSTS CLI。VSTS CLI 已被弃用,将不再接收新功能。我们建议 VSTS CLI 的用户切换到 Azure CLI 并添加 Azure DevOps 扩展。 " docs.microsoft.com/en-us/cli/vsts/overview?view=vsts-cli-latest【参考方案4】:

在 MacOS Catalina 10.15.5 中,.npmrc 文件路径位于

/Users/<user-name>/.npmrc

在任何编辑器中打开(对于首次使用的用户,创建一个新文件)并复制粘贴您的令牌。保存它。

你准备好了。

注意: 正如@oligofren 所提到的,命令npm config ls -l 将npm 配置。您将从配置参数userconfig 获取.npmrc 文件

【讨论】:

以上是关于如何添加 .npmrc 文件?的主要内容,如果未能解决你的问题,请参考以下文章

npm的.npmrc文件在哪里?缓存及全局包文件在什么位置?

npmrc npm配置文件

nodejs中.npmrc文件的内容

有没有办法在单个 npmrc 文件中配置多个注册表

npm修改配置与.npmrc文件的作用

问题记录npm 重置镜像失败 -- 删除.npmrc文件即可