これは実際にはバグではありませんが、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構成でます。これは、 GHActionsが
npx <module>
。/ cc @MylesBorins @richardlau
@ruyadornoはスラックの会話で、これは意図的な
こんにちは@BethGriggs私たちに知らせてくれてありがとう😄
非対話型端末の場合、 npx
をスローする代わりにWARNのみにパッチするので、Unixパイプラインの任意の組み合わせでもプロンプト/確認が回避されることに注意してください。
npx mocha < /dev/null
Slackチャネルでも言及されているように: 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の当初の懸念はまだ問題だと思います😬
うーん🤔 process.stdin.isTTY
@nlfのチェックに加えて、 @npmcli/ci-detect
を使用して環境もチェックする必要がありますか?
これもヒットすると、すべてのCIスクリプトが壊れました...マイナー/パッチリリースで壊れた変更を導入したのはなぜですか?
Circle CIでこの問題が発生している場合は、グローバル環境変数を設定して、すべてのジョブに対してnpm_config_yes
変数をtrue
に設定できます。
@FezVrastaの変更は、7.0.0Semver-Majorの変更で行われました。 TTYをチェックしてCIの問題を修正したと思いましたが、見逃したエッジケースがあるようです。 #2047は、より多くのCI環境でこれを修正できる可能性があります。
本日7.0.6を公開しましたが、これでうまくいくはずです。 CI環境で実行しているように見える場合は、プロンプトを完全にスキップするようになりました。
引き続き問題が発生する場合はお知らせください。
今私たちのために働く: https :
迅速な修正をありがとう!
質問:npx7がプロンプトを表示してから、ユーザーが不足しているパッケージをインストールすると、
最も参考になるコメント
本日7.0.6を公開しましたが、これでうまくいくはずです。 CI環境で実行しているように見える場合は、プロンプトを完全にスキップするようになりました。
引き続き問題が発生する場合はお知らせください。