Dies ist kein wirklicher Fehler, aber es wird angesprochen, um die möglichen Auswirkungen von Änderungen an npx
in CI-Umgebungen zu erörtern.
npx mocha
Need to install the following packages:
mocha
Ok to proceed? (y)
npx -y mocha
funktioniert, um das automatische Installationsverhalten zu erhalten, aber dazu müssten Benutzer ihre CI-Skripte aktualisieren.
Außerdem npx -y mocha
Fehler in npm @ 6 mit:
npx -y mocha
ERROR: You must supply a command.
Execute binaries from npm packages.
npx [options] <command>[@version] [command-arg]...
Ich denke, dies würde die in CI-Skripten erforderliche Logik komplizieren, wenn mehrere Node.js / npm-Versionen ausgeführt werden.
_Nur am Beispiel von Mokka. In Node.js verwenden wir npx in unserer GH Actions-Konfiguration , von der ich vermute, dass sie beschädigt wird, wenn GH Actions aktualisiert wird, um eine Version von Node.js zu verwenden, die
npx <module>
in einer CI-Umgebung./ cc @MylesBorins @richardlau
@ruyadorno erwähnte in dem Könnte jemand für diese Entscheidung einen Link zum Kontext
hi @BethGriggs danke, dass du uns informiert hast 😄
Es ist erwähnenswert, dass wir für nicht interaktive Terminals npx
nur auf WARN patchen (Ref. 1936), anstatt zu werfen, sodass jede Kombination von Unix-Pipelines auch die Aufforderung / Bestätigung vermeiden würde:
npx mocha < /dev/null
Wie auch im Slack-Kanal erwähnt: npm_config_yes=true npx mocha
ist die funktionierende npm6-7-kompatible Version davon
Wir haben heute 7.0.0-rc.4 veröffentlicht, das die Eingabeaufforderung überspringt, aber eine Warnung ausgibt, wenn es in einer nicht interaktiven Umgebung ausgeführt wird. Auf diese Weise werden Sie immer noch benachrichtigt, dass etwas installiert wird, aber wir brechen in CI-Umgebungen nicht ab.
Für interaktive Umgebungen sollte die oben beschriebene Problemumgehung ausreichen.
Können Sie uns mitteilen, ob dies Ihr Problem bei BethGriggs behebt?
Wir haben heute 7.0.0-rc.4 veröffentlicht, das die Eingabeaufforderung überspringt, aber eine Warnung ausgibt, wenn es in einer nicht interaktiven Umgebung ausgeführt wird. Auf diese Weise werden Sie immer noch benachrichtigt, dass etwas installiert wird, aber wir brechen in CI-Umgebungen nicht ab.
Für interaktive Umgebungen sollte die oben beschriebene Problemumgehung ausreichen.
Können Sie uns mitteilen, ob dies Ihr Problem bei BethGriggs behebt?
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
Können Sie uns mitteilen, ob dies Ihr Problem bei BethGriggs behebt?
Ich denke, das Problem wurde behoben, um die Auswirkungen in CI-Umgebungen zu verringern, danke!
Schließen, da das ursprüngliche Problem behoben ist.
@gengjiawen Wenn Sie das Problem, das Sie aktualisiert haben, reproduzieren können, öffnen Sie bitte ein anderes Problem, und wir können es dort diskutieren
FWIW, ich bin in TravisCI darauf gestoßen: https://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988
Ich denke, dass das ursprüngliche Anliegen von @BethGriggs immer noch ein Problem ist 😬
hmmm 🤔 vielleicht sollten wir auch mit @npmcli/ci-detect
nach der Umgebung suchen, zusätzlich zu process.stdin.isTTY
@nlf ?
Auch dies hat alle unsere CI-Skripte beschädigt ... Warum haben Sie eine grundlegende Änderung in einer Minor / Patch-Version eingeführt?
Für alle , mit diesem Problem auf Kreis CI, können Sie eine globale Umgebungsvariable , die setzen npm_config_yes
Variable true
für alle Ihre Jobs
@FezVrasta die Änderung kam in der 7.0.0 Semver-Major-Änderung. Wir dachten, wir hätten das CI-Problem behoben, indem wir nach TTY gesucht haben, aber es scheint, dass wir Randfälle übersehen haben. Es sieht so aus, als ob # 2047 offen ist, um dies hoffentlich für weitere CI-Umgebungen zu beheben
Wir haben heute 7.0.6 veröffentlicht, das dies hoffentlich beheben sollte. Wir überspringen die Eingabeaufforderung jetzt vollständig, wenn Sie scheinbar in einer CI-Umgebung ausgeführt werden.
Lassen Sie uns wissen, wenn Sie weiterhin Probleme haben!
Funktioniert jetzt für uns: https://github.com/testing-library/react-testing-library/pull/809/files
Vielen Dank für die schnelle Lösung!
Frage: Wenn npx7 dazu auffordert und der Benutzer das fehlende Paket installiert,
Hilfreichster Kommentar
Wir haben heute 7.0.6 veröffentlicht, das dies hoffentlich beheben sollte. Wir überspringen die Eingabeaufforderung jetzt vollständig, wenn Sie scheinbar in einer CI-Umgebung ausgeführt werden.
Lassen Sie uns wissen, wenn Sie weiterhin Probleme haben!