问题标签 [npm-ci]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
121 浏览

npm - 当 npm install/ci 尊重 package-lock.json 时,在 package.json 中使用 tilde(~) 和 caret(^) 有什么目的吗?

如果应用程序具有 package-lock.json 或 shripkwrap.json,则 npm install/npm ci 命令都将遵循依赖项版本(在 package-lock.json 或 shripkwrap.json 中),波浪号(~)和插入符号的用途是什么(^) 在 package.json 中服务?

0 投票
3 回答
61755 浏览

node.js - npm:何时使用 `--force` 和 `--legacy-peer-deps`

我是 npm 的新手,正在尝试了解重新创建node_modules目录以进行部署的工作原理。

我们使用npm ci而不是npm install确保在部署期间保持干净的状态。但是,当我们在没有任何标志的情况下运行它时,我们会收到以下错误:

修复上游依赖冲突,或使用 --force 或 --legacy-peer-deps 重试此命令以接受不正确(并且可能损坏)的依赖解析。

for的文档如下(页面npm install上没有标志):--forcenpm ci

-f 或 --force 参数将强制 npm 获取远程资源,即使磁盘上存在本地副本。

同时,文档--legacy-peer-deps说:

--legacy-peer-deps:安装时忽略所有 peerDependencies,采用 npm 版本 4 到版本 6 的样式。

似乎这两个标志都可以毫无问题地npm ci生成目录,但我仍然不清楚两者之间的区别。node_modules

据我了解,--force听起来它将是在最后一个依赖下载的基础上,并将覆盖任何以前下载的依赖项。同时,--legacy-peer-deps听起来它在安装过程中总是会跳过对等依赖项(无论是什么),即使没有问题。

这两个标志有什么区别,我们应该什么时候使用它们?

0 投票
0 回答
192 浏览

node.js - Gitlab CI - 缓存 Node.js 依赖项

我在尝试重用npm ci在作业之间安装的软件包时遇到了重大问题。我一直在关注此文档:https://docs.gitlab.com/ee/ci/caching/#cache-nodejs-dependencies,但无论如何都会在每个步骤中重新安装软件包:

这是我的yaml。这些文件位于名为frontend.

非常感谢一些帮助!

0 投票
1 回答
34 浏览

node.js - 绕过 NPM 缓存,如果我要查找的模块不存在

在使用 NPM 及其缓存时,我注意到 - 有时 - 当某个包的最新版本不在缓存中时,会npm ci在不绕过 NPM 缓存的情况下出错。

有没有办法告诉 NPM 类似“如果您要查找的包不在缓存中,则绕过缓存并重试”?

提前致谢。

0 投票
0 回答
225 浏览

node.js - NPM 审计未发现漏洞

我有一个 CI 服务,它npm audit在每个构建上运行,并在存在高风险漏洞时发出通知。奇怪的是,当我在npm audit本地运行时 CI 报告高漏洞时,它说found 0 vulnerabilities。过几天就会发现问题...

例如,CI 报告:CVE-2020-7774: The npm package y18n before versions 3.2.2, 4.0.1, and 5.0.5 is vulnerable to Prototype Pollution.

但是在本地开发环境中:
没有问题

CI 和本地都使用 Node15.12.0和 npm 7.6.3

为什么npm audit找不到最新的问题?有什么方法可以强制更新它吗?

npm --verbose audit输出:

在此处输入图像描述

0 投票
1 回答
202 浏览

npm - “npm install”在 npm 7 中是否成为确定性的?

这里https://github.blog/2021-02-02-npm-7-is-now-generally-available/ 说:

lockfile v2 解锁了执行确定性和可重复构建以生成包树的能力。

但我想知道它现在是 npm 7 的默认行为吗?也就是说,如果有一个package-lock.jsonnpm install使用不精确的版本更新最顶层的包,比如^1.0.0frompackage.json或者它总是会以同样的方式工作yarn

如果npm install现在是确定性的,如果我说这npm ci主要相当于

有一些额外的检查?

0 投票
0 回答
73 浏览

adonis.js - Adonis npm ci --production 挂起

部署 Adonis 项目时遇到问题,构建后,adonis 建议npm ci --production在 build 文件夹中执行。在我这样做之后npm ci --production,这个过程就挂起

0 投票
0 回答
271 浏览

npm - 我怎样才能解决'gyp ERR!堆栈错误:未找到:CI 服务器上的 make'

我的 .NET 和 react 项目在本地构建良好,但在 CI 服务器上,我收到以下错误。

我尝试了什么:

本地

  1. 跑到git clean -xfd删除node_modules
  2. 运行npm install生成新鲜package-lock.json
  3. 构建调用npm cinpm run build..

这就是我调用反应项目构建的方式

Configuration可以是Debugor Release,两者都可以在本地正常工作。

CI服务器

  1. dotnet build在目录上.sln运行

其他信息:

make我对我的文件没有依赖关系,package.json也没有在我的机器上全局安装它,我可以通过运行来检查npm list -g --depth=0

我遇到了 github 上报告的一些问题,这表明原因可能是其他包cwd /azp/agent/_work/22/s/projectfolder/ui-components/node_modules/dtrace-provider,但对我的情况没有帮助。

我有一些日志,例如Skipping 'fsevents' build as platform linux is not supported

我已经在这里呆了几天了,不知道接下来要尝试什么。

0 投票
1 回答
94 浏览

firebase - 使用 GitHub 操作在 Firebase 主机上自动部署 Vue-CLI 项目

所以我有我的 Vue-CLI 项目,但我无法管理自动部署。

我整天都在谷歌搜索,我从那里得到了密钥,firebase login:ci但我不明白我应该把它放在yaml文件中的什么地方。 错误

我确实将 FIREBASE_TOKEN 作为环境变量添加到我的 github 存储库中,但问题仍然存在。即使 firebase 文档说Option 1: Store the token as the environment variable FIREBASE_TOKEN. Your system will automatically use the token.

这是我的YAML文件,由 firebase-CLI 生成。

yaml

我可以对我的存储库进行克隆、推送、获取、创建、删除和做任何我想做的事情。手动部署工作得很好。

自动部署(在另一个 repo 上,我在那里使用 Nuxt.js)开箱即用。

为什么我在使用 Vue-CLI 时遇到这么多麻烦?.. 以及如何解决这个问题?

UPD:这是输出,git ls-remote -h -t ssh://git@github.com/mattboldt/typed.js.git执行此命令时似乎没有错误。现在我更加困惑......我什至不知道问题出在哪里......我也确实对另一个 repo (Nuxt.js) 进行了更改,并且自动部署确实在那里工作。我还确保 Nuxt.js 项目和 Vue-CLI 之间的 Firebase 服务帐户是 100% 相同的。它仍然不起作用。 ls-远程 -h -t

0 投票
1 回答
529 浏览

npm - npm ci 的 pnpm 等效命令

npm ciin的等效命令是pnpm什么?

根据以下文档npm install

pnpm install用于安装项目的所有依赖项。

在 CI 环境中,如果存在锁定文件但需要更新,则安装会失败。

“CI 环境”是如何定义的?

以下是什么意思?可以更新依赖关系,但 pnpm-lock.yaml没有触及?

pnpm i --frozen-lockfile # pnpm-lock.yaml没有更新