这并不是一个真正的错误,但要提出它来讨论在CI环境中更改npx
的潜在影响。
npx mocha
Need to install the following packages:
mocha
Ok to proceed? (y)
npx -y mocha
可以获取自动安装行为,但这将要求用户更新其CI脚本。
此外, npm @ 6中的npx -y mocha
错误包括:
npx -y mocha
ERROR: You must supply a command.
Execute binaries from npm packages.
npx [options] <command>[@version] [command-arg]...
我认为,跨多个Node.js / npm版本运行时,CI脚本中所需的逻辑会变得复杂。
_仅以Mocha为例。 在Node.js中,我们在GH Actions配置中使用npx ,我怀疑当GH Actions更新以使用包含像素会被破坏。
npx <module>
。/ cc @MylesBorins @richardlau
@ruyadorno在
嗨@BethGriggs谢谢你让我们知道😄
值得一提的是,对于非交互式终端,我们将补丁(ref#1936) npx
仅补丁到WARN而不是抛出错误,因此Unix管道的任何组合都可以避免提示/确认:
npx mocha < /dev/null
正如在松弛频道中所提到的: npm_config_yes=true npx mocha
是它的有效npm6-7兼容版本
我们今天发布了7.0.0-rc.4,它在非交互式环境中运行时会跳过提示,但会显示警告。 这样一来,您仍然会收到有关正在安装某些东西的警报,但我们不会在CI环境中中断。
对于交互式环境,上述解决方法应该可以解决问题。
您能告诉我们@BethGriggs是否能解决您的问题吗?
我们今天发布了7.0.0-rc.4,它在非交互式环境中运行时会跳过提示,但会显示警告。 这样一来,您仍然会收到有关正在安装某些东西的警报,但我们不会在CI环境中中断。
对于交互式环境,上述解决方法应该可以解决问题。
您能告诉我们@BethGriggs是否能解决您的问题吗?
root<strong i="9">@localhost</strong> ~# npm install -g [email protected]
npm ERR! code MODULE_NOT_FOUND
npm ERR! Cannot find module 'agentkeepalive'
npm ERR! Require stack:
npm ERR! - /usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/agent.js
npm ERR! - /usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/index.js
npm ERR! - /usr/local/lib/node_modules/npm/node_modules/npm-registry-fetch/index.js
npm ERR! - /usr/local/lib/node_modules/npm/lib/utils/metrics.js
npm ERR! - /usr/local/lib/node_modules/npm/lib/npm.js
npm ERR! - /usr/local/lib/node_modules/npm/lib/cli.js
npm ERR! - /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2020-10-10T03_17_28_890Z-debug.log
您能告诉我们@BethGriggs是否能解决您的问题吗?
我认为已经解决了减少在CI环境中的影响的问题,谢谢!
关闭,因为原始问题已解决。
@gengjiawen,如果您能够重现已更新的问题,请打开另一个问题,我们可以在那里进行讨论
FWIW,我在TravisCI中碰到了这个问题: https ://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988
我认为@BethGriggs最初的关注仍然是个问题😬
hmmm🤔也许我们还应该在检查process.stdin.isTTY
@nlf的基础上使用@npmcli/ci-detect
检查环境?
也是如此,它破坏了我们所有的CI脚本...为什么您在次要/补丁版本中引入了重大更改?
对于在Circle CI上遇到此问题的任何人,您都可以设置全局环境变量,以将所有工作的npm_config_yes
变量设置为true
@FezVrasta更改来自7.0.0 Semver-Major更改。 我们以为我们通过检查TTY来解决了CI问题,但似乎有些遗漏的案例。 看起来#2047已打开,有望在更多CI环境中解决此问题
我们今天发布了7.0.6,有望解决此问题。 现在,如果您似乎正在CI环境中运行,我们将完全跳过该提示。
如果您仍然遇到问题,请告诉我们!
现在为我们工作: https :
感谢您的快速修复!
问题:当npx7提示,然后用户安装缺少的软件包时,
最有用的评论
我们今天发布了7.0.6,有望解决此问题。 现在,如果您似乎正在CI环境中运行,我们将完全跳过该提示。
如果您仍然遇到问题,请告诉我们!