Ce n'est pas vraiment un bogue, mais le soulever pour discuter de l'impact potentiel des changements de npx
dans les environnements CI.
npx mocha
Need to install the following packages:
mocha
Ok to proceed? (y)
npx -y mocha
fonctionne pour obtenir le comportement d'installation automatique, mais cela obligerait les utilisateurs à mettre à jour leurs scripts CI.
De plus, des erreurs npx -y mocha
dans npm @ 6 avec:
npx -y mocha
ERROR: You must supply a command.
Execute binaries from npm packages.
npx [options] <command>[@version] [command-arg]...
Je pense que cela compliquerait la logique requise dans les scripts CI lors de l'exécution sur plusieurs versions de Node.js / npm.
_Juste en utilisant Mocha comme exemple. Dans Node.js, nous utilisons npx dans notre configuration GH Actions , qui, je suppose, serait cassée lorsque GH Actions se met à jour pour utiliser une version de Node.js contenant npm@7._
npx <module>
dans un environnement CI./ cc @MylesBorins @richardlau
@ruyadorno a mentionné dans la conversation
salut @BethGriggs merci de nous l'avoir fait savoir 😄
Il convient de mentionner que pour les terminaux non interactifs, nous allons patcher (réf. # 1936) npx
pour seulement WARN au lieu de lancer donc toute combinaison de pipelines Unix éviterait également l'invite / confirmation:
npx mocha < /dev/null
comme mentionné dans le canal slack: npm_config_yes=true npx mocha
est la version compatible npm6-7 de celui-ci
nous avons publié la version 7.0.0-rc.4 aujourd'hui qui ignore l'invite, mais affiche un avertissement, lorsqu'elle est exécutée dans un environnement non interactif. de cette façon, vous êtes toujours averti que quelque chose est en cours d'installation, mais nous ne nous interrompons pas dans les environnements CI.
pour les environnements interactifs, la solution de contournement ci-dessus devrait faire l'affaire.
pouvez-vous nous faire savoir si cela résout votre problème @BethGriggs?
nous avons publié la version 7.0.0-rc.4 aujourd'hui qui ignore l'invite, mais affiche un avertissement, lorsqu'elle est exécutée dans un environnement non interactif. de cette façon, vous êtes toujours averti que quelque chose est en cours d'installation, mais nous ne nous interrompons pas dans les environnements CI.
pour les environnements interactifs, la solution de contournement ci-dessus devrait faire l'affaire.
pouvez-vous nous faire savoir si cela résout votre problème @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
pouvez-vous nous faire savoir si cela résout votre problème @BethGriggs?
Je pense que le souci a été résolu de réduire l'impact dans les environnements CI, merci!
fermeture puisque le problème initial est résolu.
@gengjiawen si vous êtes en mesure de reproduire le problème que vous avez rencontré lors de la mise à jour, veuillez ouvrir un autre problème et nous pourrons en discuter ici
FWIW, je suis tombé dessus dans TravisCI: https://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988
Je pense que la préoccupation initiale de @BethGriggs est toujours un problème 😬
hmmm 🤔 peut-être devrions-nous aussi vérifier l'environnement en utilisant @npmcli/ci-detect
en plus de vérifier process.stdin.isTTY
@nlf ?
Frapper cela aussi, cela a cassé tous nos scripts CI ... Pourquoi avez-vous introduit un changement de rupture dans une version mineure / patch?
Pour toute personne ayant ce problème sur Circle CI, vous pouvez définir une variable d'environnement globale pour définir la variable npm_config_yes
sur true
pour tous vos travaux
@FezVrasta le changement est venu dans le changement 7.0.0 Semver-Major. Nous pensions avoir résolu le problème CI en recherchant TTY, mais il semble que nous ayons manqué des cas extrêmes. On dirait que # 2047 est ouvert pour, espérons-le, résoudre ce problème pour plus d'environnements CI
nous avons publié aujourd'hui la version 7.0.6 qui devrait, espérons-le, résoudre ce problème. nous ignorons maintenant complètement l'invite si vous semblez être en cours d'exécution dans un environnement CI.
faites-nous savoir si vous continuez à avoir des problèmes!
Fonctionne pour nous maintenant: https://github.com/testing-library/react-testing-library/pull/809/files
Merci pour la solution rapide!
Question: lorsque npx7 invite et que l'utilisateur installe le package manquant,
Commentaire le plus utile
nous avons publié aujourd'hui la version 7.0.6 qui devrait, espérons-le, résoudre ce problème. nous ignorons maintenant complètement l'invite si vous semblez être en cours d'exécution dans un environnement CI.
faites-nous savoir si vous continuez à avoir des problèmes!