Cli: [BUG] Comportement de npx dans les environnements CI

Créé le 9 oct. 2020  ·  14Commentaires  ·  Source: npm/cli

Ce n'est pas vraiment un bogue, mais le soulever pour discuter de l'impact potentiel des changements de npx dans les environnements CI.

Comportement actuel:

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._

Comportement prévisible:

  • Incertain, mais curieux de savoir s'il pourrait y avoir une solution de contournement qui supprime la nécessité pour les utilisateurs de modifier leurs scripts.

Étapes à suivre pour reproduire:

  • npx <module> dans un environnement CI.

Environnement:

  • Tous les environnements CI

/ cc @MylesBorins @richardlau

Bug Release 7.x

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!

Tous les 14 commentaires

@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

image

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,

  1. où le paquet est-il stocké? Apparemment, il n'est pas installé en tant que package npm global.
  2. comment forcer les marques npx à vérifier et télécharger la dernière version de "marques"? Nous avons eu des problèmes que npx makes est piégé avec l'ancienne version locale de "makes".
Cette page vous a été utile?
0 / 5 - 0 notes