Este não é realmente um bug, mas levantá-lo para discutir o impacto potencial das mudanças em npx
em ambientes de CI.
npx mocha
Need to install the following packages:
mocha
Ok to proceed? (y)
npx -y mocha
funciona para obter o comportamento de instalação automática, mas isso exigiria que os usuários atualizassem seus scripts de CI.
Além disso, npx -y mocha
erros em npm @ 6 com:
npx -y mocha
ERROR: You must supply a command.
Execute binaries from npm packages.
npx [options] <command>[@version] [command-arg]...
Acho que isso complicaria a lógica necessária em scripts de CI ao executar em várias versões Node.js / npm.
_Só usando o Mocha como exemplo. No Node.js, usamos npx em nossa configuração de ações do GH , que eu suspeito que seria interrompida quando as ações do GH fossem atualizadas para usar uma versão do Node.js contendo npm@7._
npx <module>
em um ambiente de CI./ cc @MylesBorins @richardlau
@ruyadorno mencionou na conversa lenta que esta foi uma alteração significativa intencional, alguém poderia vincular ao contexto dessa decisão?
oi @BethGriggs obrigado por nos avisar 😄
Vale a pena mencionar que, para terminais não interativos, vamos corrigir (ref # 1936) npx
apenas para WARN em vez de lançar, portanto, qualquer combinação de pipelines Unix também evitaria o prompt / confirmação:
npx mocha < /dev/null
como também mencionado no canal slack: npm_config_yes=true npx mocha
é a versão compatível npm6-7 funcional dele
publicamos 7.0.0-rc.4 hoje que ignora o prompt, mas imprime um aviso, quando executado em um ambiente não interativo. dessa forma, você ainda é alertado de que algo está sendo instalado, mas não quebramos em ambientes de CI.
para ambientes interativos, a solução alternativa acima deve resolver o problema.
você pode nos informar se isso resolve seu problema @BethGriggs?
publicamos 7.0.0-rc.4 hoje que ignora o prompt, mas imprime um aviso, quando executado em um ambiente não interativo. dessa forma, você ainda é alertado de que algo está sendo instalado, mas não quebramos em ambientes de CI.
para ambientes interativos, a solução alternativa acima deve resolver o problema.
você pode nos informar se isso resolve seu problema @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
você pode nos informar se isso resolve seu problema @BethGriggs?
Acho que a preocupação foi abordada para reduzir o impacto em ambientes de CI, obrigado!
fechando uma vez que o problema original foi resolvido.
@gengjiawen se você conseguir reproduzir o problema que teve ao atualizar, abra outro problema e podemos discuti-lo lá
FWIW, me deparei com isso no TravisCI: https://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988
Acho que a preocupação original de @BethGriggs ainda é um problema 😬
hmmm 🤔 talvez devêssemos também verificar o ambiente usando @npmcli/ci-detect
além de verificar se há process.stdin.isTTY
@nlf ?
Atingir isso também quebrou todos os nossos scripts de CI ... Por que você introduziu uma alteração importante em uma versão menor / patch?
Para qualquer pessoa com esse problema no Circle CI, você pode definir uma variável de ambiente global para definir a variável npm_config_yes
como true
para todos os seus trabalhos
@FezVrasta a mudança veio na mudança Semver-Major 7.0.0. Pensamos ter corrigido o problema de CI verificando o TTY, mas parece que perdemos alguns casos extremos. Parece que o # 2047 está aberto para corrigir isso, espero, para mais ambientes de CI
publicamos o 7.0.6 hoje que deve resolver isso. agora, ignoramos totalmente o prompt se você parece estar executando em um ambiente de CI.
deixe-nos saber se você continuar a ter problemas!
Funciona para nós agora: https://github.com/testing-library/react-testing-library/pull/809/files
Obrigado pela solução rápida!
Pergunta: quando o npx7 solicita e o usuário instala o pacote ausente,
Comentários muito úteis
publicamos o 7.0.6 hoje que deve resolver isso. agora, ignoramos totalmente o prompt se você parece estar executando em um ambiente de CI.
deixe-nos saber se você continuar a ter problemas!