标签: npm-registry

覆盖 package-lock.json 中已安装软件包的注册表

我有大量现有的package-lock.json依赖项,已通过http://registry.npmjs.org/解决。

例如

{
  "name": "my-package",
  "version": "1.2.3",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@babel/cli": {
      "version": "7.7.4",
      "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.7.4.tgz",
      "integrity": "sha512-O7mmzaWdm+VabWQmxuM8hqNrWGGihN83KfhPUzp2lAW4kzIMwBxujXkZbD4fMwKMYY9FXTbDvXsJqU+5XHXi4A==",
      "dev": true,
      "requires": {
        "chokidar": "^2.1.8",
        "commander": "^4.0.1",
        "convert-source-map": "^1.1.0",
        "fs-readdir-recursive": "^1.1.0",
        "glob": "^7.0.0",
        "lodash": "^4.17.13",
        "make-dir": "^2.1.0",
        "slash": "^2.0.0",
        "source-map": "^0.5.0"
      },
      "dependencies": {
        "commander": {
          "version": "4.0.1",
          "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz",
          "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==",
          "dev": true
        },
        "make-dir": {
          "version": "2.1.0",
          "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
          "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
          "dev": true,
          "requires": {
            "pify": "^4.0.1",
            "semver": "^5.6.0"
          }
        },
        "pify": …
Run Code Online (Sandbox Code Playgroud)

node.js npm npm-registry

20
推荐指数
3
解决办法
1万
查看次数

使用 Yarn 从 Github 包注册表安装私有包失败,未授权

这个问题与这些有关。但是没有一个解决方案对我有用。

我可以安装一个没有问题的包,npm install @scope/package但是我不能用纱线做同样的事情:yarn add @scope/package

纱线抛出以下错误: An unexpected error occurred: "https://npm.pkg.github.com/download/@scope/package/1.2.8/089b08cffb16074c210ec3a59b04de268ae1c7b3a0492dce110adee3ada05bdd: Request failed \"401 Unauthorized\"".

我的 .npmrc 文件看起来像这样:(在 .yarnrc 下尝试和不使用)

registry=https://registry.npmjs.org/
//npm.pkg.github.com/:_authToken=MY_AUTHTOKEN
@scope:registry=https://npm.pkg.github.com/
Run Code Online (Sandbox Code Playgroud)

我试过添加这个 .yarnrc 文件:

registry "https://registry.npmjs.org"
"@scope:registry" "https://npm.pkg.github.com"
Run Code Online (Sandbox Code Playgroud)

(没有 .yarnrc)我试过这个 .npmrc 文件

registry=https://registry.yarnpkg.com/

@scope:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=MY_AUTHTOKEN
always-auth=true
Run Code Online (Sandbox Code Playgroud)

MY_AUTHTOKENPersonal Access Token从 Github 生成的我在哪里。(它可以访问包中的所有内容)

我试图:

  • 删除 yarn.lock
  • 删除 .yarnrc
  • 与登录npm login使用我的PAT作为密码
  • 注销 npm 并删除全局 .npmrc 和 .yarnrc
  • 登录 yarn login

万一出现任何混淆,我实际上并不是在尝试 @scope 和 /package,而是在尝试我的实际作用域和包名称。 …

registry yarnpkg npm-registry github-package-registry

14
推荐指数
1
解决办法
5546
查看次数

从npm registry api获取版本

我正在寻找一种从npm注册表api查询npm包版本的方法.直到现在我发现的只是我需要查询整个包元数据并从那里过滤版本,例如:https://registry.npmjs.org/react-chuck/

对于包含少量版本的软件包是可以的,但对于大量版本来说,查询时间太长.

我想也许有像dist-tags api那样只查询dist-tags,例如:https://registry.npmjs.org/-/package/react-chuck/dist-tags,dist-tags是在与版本相同的范围内...... 在此输入图像描述

我不介意也做cli npm view react-chuck versions但是这会将数组作为字符串和字符串数组返回.

我看了看这两个链接:

任何人都有一个冠军的小费?

node.js npm npm-registry

9
推荐指数
1
解决办法
1325
查看次数

npmrc 同一范围的多个注册表

是否可以包含同一范围的多个注册表?在我的公司,我们将@mycompany范围用于公共 NPM 注册表和内部注册表。

我试着做

@mycompany:registry=https://company.registry.com
@mycompany:registry=https://registry.npmjs.org
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

node.js npm npm-registry

9
推荐指数
1
解决办法
8684
查看次数

为本地开发和 CI 设置私有 npm 注册表身份验证的最佳实践是什么?

我想知道是否有一个通用的最佳实践来为本地开发设置私有 npm 注册表身份验证,该身份验证也适用于 CI(反之亦然)。

这是我目前的理解:

对于本地开发:运行npm login该命令将创建访问令牌、创建~/.npmrc文件并将访问令牌写入该文件,如下所示:

@my-scope:registry=https://registry.npmjs.org/
//registry.npmjs.org/:_authToken=my-auth-token
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我有这个.npmrc文件(在 旁边package.json):

@my-scope:registry=https://registry.npmjs.org/
//registry.npmjs.org/:always-auth=true
Run Code Online (Sandbox Code Playgroud)

这看起来效果很好。我可以安装我的私有软件包,因为 npm 似乎会获取注册表的用户级身份验证设置。

对于 CI: NPM 文档建议将以下内容添加到项目级别.npmrc以在 CI 中注入身份验证:

//registry.npmjs.org/:_authToken=${NPM_TOKEN}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会覆盖我机器上的用户级配置。.npmrc文件具有以下优先级(从最高到最低):项目级、用户级、全局、npm 内置。npm CLI 现在尝试使用 NPM_TOKEN 环境变量进行身份验证,除非我在本地计算机上显式导出它,否则这显然不起作用。

也许我错过了一些明显的东西。如果没有,我很好奇是否有任何常见的最佳实践来处理这个问题?当访问令牌已经在用户级别配置时,要求每个员工导出其计算机上的访问令牌.npmrc似乎不是一个很好的解决方案。

或者,人们可以根本不关心用户级配置(或 npm 登录),而是直接在每个员工的本地计算机上将访问令牌导出为 NPM_TOKEN。但正如前面提到的,我认为这不是一个很好的解决方案。我想象一个标准解决方案(如用户级配置文件),每个员工都可以在其中设置公司的私人注册表。

npm npm-registry

9
推荐指数
1
解决办法
5089
查看次数

使用身份验证令牌查询给定软件包版本的私有 NPM 注册表,但没有文件系统访问权限?

这项工作的目的是能够测试私有注册表中是否存在软件包版本,而无需触及文件系统/配置文件。对于公共注册表中的包,这非常简单:npm view lpad@2.0.1生成有关该已发布版本的一些信息,但(截至撰写本文时)npm view lpad@201.0.0没有任何信息或输出。我用它来推断包的存在。

我还可以将私有注册表 URL 传递给npm view <packagename>,如 中所示npm view <packagename> --registry https://private.registry/path/。尽管文档中没有明确提及,但这似乎会影响私有注册表npm-view文档npm-search对此进行了描述,所以我认为这意味着它是一个记录在案的 API 功能)。

为了能够与私有注册表对话,我可以根据这些 npm 说明在查询中使用身份验证令牌,以便在 CI/CD 工作流程中执行此操作:将其放入.npmrc文件中,如下所示:

//your_registry/:_authToken 12345
Run Code Online (Sandbox Code Playgroud)

或者更安全地,//your_registry/:_authToken $TOKENTOKEN环境变量设置为12345其他位置。

知道该怎么做是npm view针对私有npm注册表使用,而不写入.npmrc文件

我计划从同一台机器并行运行多个查询,因此为了避免文件中的竞争条件.npmrc,我宁愿直接在每个命令中通过身份验证。我假设使用身份验证令牌,这只是一个简单的curl命令,但我没有找到有关 NPM API 如何工作的信息。(它npm-registry-client似乎没有做任何与查看/查找相关的事情;它access设置访问级别)。

我是否遗漏了一些显而易见的东西?在哪里可以找到有关 …

readonly package node.js npm npm-registry

8
推荐指数
1
解决办法
1万
查看次数

设置 npm 注册表 URL 的用户名和密码

我正在尝试使用 npm 从 url 安装软件包:http://host:80

我执行了以下操作: npm config set strict-ssl false npm config setregistry "<>" npm --proxy http://host:port install <> (我们的代理不需要身份验证)

当我厌倦了运行上面的安装包命令时,它会抛出 npm ERR!代码 E401 npm 错误!401 需要授权:@latest

当我应该为注册表 url 设置用户名和密码时。我用 google 搜索并发现注册表 url 和详细信息是 .npmrc 文件的一部分。

目前它有 strict-ssl=falseregistry=<>enter code here

我应该在此文件中添加用户名和密码吗?如果是这样,您能给我格式或如何添加它或在哪里添加它。谢谢。

node.js npm npm-install npm-registry npm-config

7
推荐指数
1
解决办法
5万
查看次数

如何修复 Linux 上 npm 上的连接 ENETUNREACH

我没有使用代理,我只是一个菜鸟,试图学习如何create-react-app在我的机器上进行本地开发(linux)

这是的输出tracepath registry.npmjs.org

 1?: [LOCALHOST]                        0.020ms pmtu 1500
 1:  2001:4451:664:1400:caf6:c8ff:fef2:bdcb                2.906ms !N
 1:  2001:4451:664:1400:caf6:c8ff:fef2:bdcb                0.995ms !N
     Resume: pmtu 1500
Run Code Online (Sandbox Code Playgroud)

我认为这证明我没有使用代理。

但我不断收到此错误

npm ERR! code ENETUNREACH
npm ERR! syscall connect
npm ERR! errno ENETUNREACH
Run Code Online (Sandbox Code Playgroud)

对于任何 npm。我不知道该怎么办。

我努力了..

  1. 删除我的主目录中的 package.json 。删除
  2. package-lock.json 在我的主目录中。删除我的主目录中的 .npm 目录。
  3. 使用 npm config 命令清除缓存
  4. 将配置中的 https-proxy 设置为 null 设置代理
  5. config 为 null 将注册表设置为https://registry.npmjs.org
  6. 将注册表设置为 htpp://registry.npmjs.org 已卸载 npm
  7. 然后重新安装未安装的 npm 和依赖项,然后安装 nvm 并通过该依赖项重新安装节点

npm install --verbose没有说任何错误消息

请有人帮助我,我尝试了任何不重新安装操作系统的方法。

linux node.js npm npm-registry

7
推荐指数
1
解决办法
8057
查看次数

“NODE_AUTH_TOKEN”和“NPM_AUTH_TOKEN”有什么区别?

我正在使用一些 github 操作在单一存储库中发布我的一个包,包含大约 4-5 个包,例如:

github-repository (monorepo):
- folder_1 (package 1)
- folder_2 (package 2)
- folder_3 (package 3)
Run Code Online (Sandbox Code Playgroud)

对于位于此 monorepo 中的每个包,当发布与版本匹配的标签时,该操作将使用工作流程(对于所有包几乎相同)来释放它:

github-repository (monorepo):
- folder_1 (package 1)
- folder_2 (package 2)
- folder_3 (package 3)
Run Code Online (Sandbox Code Playgroud)

每个包都有自己的操作工作流程.yaml并且工作正常,除了我刚刚创建的新包:package 4 (located in github-repository/folder_4)

它是一个基本包,只是它只包含配置文件,因此它的yarn build脚本只会复制./dist文件夹中的这些文件,而不暗示节点或javascript,使其工作流程如下所示:

name: Config Release
on:
  push:
    tags:
      - package4/v*

permissions:
  contents: read
  packages: write

jobs:
  release:
    name: Release
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: folder_4

    steps:
      - name: Checkout source code …
Run Code Online (Sandbox Code Playgroud)

npm-registry github-actions

7
推荐指数
1
解决办法
5778
查看次数

当包具有公共依赖项时,私有包的 npm 安装失败

可以说我有一个私人NPM库,内举办JFrog artifactory的https://my-domain.com/artifactory/api/npm/my-repo。在这个存储库中,我发布了一个 npm package: my-package,它构建得很好。my-package依赖(或更多)公共 npm包,例如lodash.

但是,当我创建一个新项目并尝试安装时my-package,出现以下错误:

$ npm install my-package --registry https://my-domain.com/artifactory/api/npm/my-repo
npm ERR! code E404
npm ERR! 404 Not Found - GET https://my-domain.com/artifactory/api/npm/my-repo/lodash - not_found
npm ERR! 404
npm ERR! 404  'lodash^4.17.11' 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 'my-package' …
Run Code Online (Sandbox Code Playgroud)

npm npm-install npm-registry

6
推荐指数
1
解决办法
5039
查看次数