Cli: Perilaku [BUG] npx di lingkungan CI

Dibuat pada 9 Okt 2020  ·  14Komentar  ·  Sumber: npm/cli

Ini sebenarnya bukan bug, tetapi mengangkatnya untuk membahas dampak potensial dari perubahan ke npx di lingkungan CI.

Perilaku Saat Ini:

npx mocha
Need to install the following packages:
 mocha
Ok to proceed? (y)

npx -y mocha berfungsi untuk mendapatkan perilaku penginstalan otomatis, tetapi pengguna perlu memperbarui skrip CI mereka.

Juga, kesalahan npx -y mocha di npm @ 6 dengan:

npx -y mocha
ERROR: You must supply a command.
Execute binaries from npm packages.
  npx [options] <command>[@version] [command-arg]...

Saya pikir itu akan memperumit logika yang diperlukan dalam skrip CI saat menjalankan beberapa versi Node.js / npm.

_Hanya menggunakan Mocha sebagai contoh. Di Node.js, kami menggunakan npx dalam konfigurasi Tindakan GH kami , yang saya curigai akan rusak saat Tindakan GH memperbarui untuk menggunakan versi Node.js yang berisi npm@7._

Perilaku yang Diharapkan:

  • Tidak yakin, tapi penasaran apakah mungkin ada solusi yang menghilangkan kebutuhan pengguna untuk mengedit skrip mereka.

Langkah Untuk Mereproduksi:

  • npx <module> dalam lingkungan CI.

Lingkungan Hidup:

  • Semua lingkungan CI

/ cc @MylesBorins @richardlau

Bug Release 7.x

Komentar yang paling membantu

kami menerbitkan 7.0.6 hari ini yang semoga dapat menyelesaikan masalah ini. kita sekarang melewatkan prompt sepenuhnya jika Anda tampaknya berjalan di lingkungan CI.

beri tahu kami jika Anda terus mengalami masalah!

Semua 14 komentar

@ruyadorno menyebutkan dalam percakapan kendur bahwa ini adalah perubahan yang disengaja, dapatkah seseorang menautkan ke konteks untuk keputusan tersebut?

hai @BethGriggs terima kasih telah memberi tahu kami 😄

Perlu disebutkan bahwa untuk terminal non-interaktif kita akan menambal (ref # 1936) npx hanya menjadi WARN daripada membuang sehingga kombinasi pipeline Unix juga akan menghindari prompt / konfirmasi:

  • npx mocha < /dev/null

seperti yang juga disebutkan di saluran slack: npm_config_yes=true npx mocha adalah versi compat npm6-7 yang berfungsi

kami menerbitkan 7.0.0-rc.4 hari ini yang melewatkan prompt, tetapi mencetak peringatan, ketika dijalankan di lingkungan non-interaktif. dengan cara itu Anda masih diberi tahu bahwa ada sesuatu yang sedang diinstal tetapi kami tidak merusak lingkungan CI.

untuk lingkungan interaktif, solusi di atas harus berhasil.

dapatkah Anda memberi tahu kami jika ini menyelesaikan masalah Anda @BethGriggs?

kami menerbitkan 7.0.0-rc.4 hari ini yang melewatkan prompt, tetapi mencetak peringatan, ketika dijalankan di lingkungan non-interaktif. dengan cara itu Anda masih diberi tahu bahwa ada sesuatu yang sedang diinstal tetapi kami tidak merusak lingkungan CI.

untuk lingkungan interaktif, solusi di atas harus berhasil.

dapatkah Anda memberi tahu kami jika ini menyelesaikan masalah Anda @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

dapatkah Anda memberi tahu kami jika ini menyelesaikan masalah Anda @BethGriggs?

Saya pikir perhatian telah diatasi untuk mengurangi dampak di lingkungan CI, terima kasih!

ditutup sejak masalah asli diselesaikan.

@gengjiawen jika Anda dapat mereproduksi masalah yang Anda perbarui, harap buka masalah lain dan kita dapat mendiskusikannya di sana

FWIW, saya menemukan ini di TravisCI: https://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988

image

Saya pikir perhatian asli @BethGriggs masih menjadi masalah 😬

hmmm 🤔 mungkin kita juga harus memeriksa lingkungan menggunakan @npmcli/ci-detect process.stdin.isTTY selain memeriksa process.stdin.isTTY @nlf ?

Memukul ini juga, itu merusak semua skrip CI kami ... Mengapa Anda memperkenalkan perubahan yang mengganggu dalam rilis minor / patch?

Bagi siapa pun yang mengalami masalah ini di Circle CI, Anda dapat mengatur variabel lingkungan global untuk mengatur variabel npm_config_yes menjadi true untuk semua pekerjaan Anda

@FezVrasta perubahan datang dalam perubahan 7.0.0 Semver-Major. Kami pikir kami memperbaiki masalah CI dengan memeriksa TTY, tetapi tampaknya ada kasus tepi yang kami lewatkan. Sepertinya # 2047 terbuka untuk semoga memperbaiki ini untuk lebih banyak lingkungan CI

kami menerbitkan 7.0.6 hari ini yang semoga dapat menyelesaikan masalah ini. kita sekarang melewatkan prompt sepenuhnya jika Anda tampaknya berjalan di lingkungan CI.

beri tahu kami jika Anda terus mengalami masalah!

Bekerja untuk kami sekarang: https://github.com/testing-library/react-testing-library/pull/809/files

Terima kasih atas perbaikan cepatnya!

Pertanyaan: ketika npx7 meminta dan kemudian pengguna menginstal paket yang hilang,

  1. dimana paket disimpan? Rupanya itu tidak diinstal sebagai paket npm global.
  2. bagaimana cara memaksa npx membuat untuk memeriksa dan mengunduh versi terbaru "make"? Kami mendapat masalah karena npx make terjebak dengan versi lama "makes" yang terpasang secara lokal.
Apakah halaman ini membantu?
0 / 5 - 0 peringkat