Cli: [BUG] سلوك npx في بيئات CI

تم إنشاؤها على ٩ أكتوبر ٢٠٢٠  ·  14تعليقات  ·  مصدر: npm/cli

هذا ليس خطأ حقًا ، ولكن رفعه لمناقشة التأثير المحتمل للتغييرات على npx في بيئات CI.

السلوك الحالي:

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

npx -y mocha للحصول على سلوك التثبيت التلقائي ، ولكن هذا يتطلب من المستخدمين تحديث البرامج النصية CI الخاصة بهم.

أيضًا ، أخطاء npx -y mocha في npm @ 6 مع:

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

أعتقد أن ذلك سيعقد المنطق المطلوب في البرامج النصية CI عند التشغيل عبر إصدارات Node.js / npm المتعددة.

_فقط باستخدام الموكا كمثال. في Node.js ، نستخدم npx في تكوين إجراءات GH الخاص بنا ، والذي أظن أنه سيتعطل عند تحديث إجراءات GH لاستخدام إصدار Node.js يحتوي على

سلوك متوقع:

  • غير متأكد ، ولكن من الغريب أن يكون هناك حل بديل يلغي حاجة المستخدمين إلى تحرير البرامج النصية الخاصة بهم.

خطوات الاستنساخ:

  • npx <module> في بيئة CI.

بيئة:

  • جميع بيئات CI

MylesBorinsrichardlau / سي سي

Bug Release 7.x

التعليق الأكثر فائدة

نشرنا اليوم 7.0.6 والذي نأمل أن يحل هذا الأمر. نتخطى الآن المطالبة تمامًا إذا بدا أنك تعمل في بيئة CI.

أخبرنا إذا استمرت المشكلات!

ال 14 كومينتر

ذكر ruyadorno في محادثة فهل يمكن لأي شخص ربط سياق هذا القرار؟

مرحبًا BethGriggs شكرًا لإخبارنا

من الجدير بالذكر أنه بالنسبة للمحطات الطرفية غير التفاعلية ، سنقوم بالتصحيح (المرجع # 1936) npx إلى WARN فقط بدلاً من الرمي ، لذا فإن أي مجموعة من خطوط أنابيب Unix ستتجنب أيضًا المطالبة / التأكيد:

  • npx mocha < /dev/null

كما هو مذكور أيضًا في قناة Slack: npm_config_yes=true npx mocha هو الإصدار المتوافق npm6-7 منه

نشرنا اليوم 7.0.0-rc.4 الذي يتخطى الموجه ، لكنه يطبع تحذيرًا ، عند تشغيله في بيئة غير تفاعلية. بهذه الطريقة لا تزال تنبهك إلى أنه يتم تثبيت شيء ما ولكننا لا نكسر بيئات CI.

بالنسبة للبيئات التفاعلية ، يجب أن يؤدي الحل البديل أعلاه المهمة.

هل يمكنك إخبارنا إذا أدى ذلك إلى حل مشكلتكBethGriggs؟

نشرنا اليوم 7.0.0-rc.4 الذي يتخطى الموجه ، لكنه يطبع تحذيرًا ، عند تشغيله في بيئة غير تفاعلية. بهذه الطريقة لا تزال تنبهك إلى أنه يتم تثبيت شيء ما ولكننا لا نكسر بيئات CI.

بالنسبة للبيئات التفاعلية ، يجب أن يؤدي الحل البديل أعلاه المهمة.

هل يمكنك إخبارنا إذا أدى ذلك إلى حل مشكلتك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

هل يمكنك إخبارنا إذا أدى ذلك إلى حل مشكلتكBethGriggs؟

أعتقد أنه تمت معالجة هذا القلق لتقليل التأثير في بيئات CI ، شكرًا!

يتم الإغلاق منذ حل المشكلة الأصلية.

gengjiawen إذا كنت قادرًا على إعادة

FWIW ، لقد اصطدمت بهذا في TravisCI: https://travis-ci.com/github/kentcdodds/advanced-react-hooks/builds/191260988

image

أعتقد أن قلقBethGriggs الأصلي لا يزال يمثل مشكلة 😬

هممم 🤔 ربما يجب علينا أيضًا التحقق من البيئة باستخدام @npmcli/ci-detect على التحقق من process.stdin.isTTY nlf ؟

ضرب هذا أيضًا ، أدى إلى كسر جميع نصوص CI الخاصة بنا ... لماذا أدخلت تغيير كسر في إصدار ثانوي / تصحيح؟

بالنسبة لأي شخص لديه هذه المشكلة على Circle CI ، يمكنك تعيين متغير بيئة عالمي لتعيين متغير npm_config_yes إلى true لجميع وظائفك

FezVrasta جاء التغيير في 7.0.0 Semver-Major. اعتقدنا أننا أصلحنا مشكلة CI عن طريق التحقق من TTY ، ولكن يبدو أن هناك حالات حافة فقدناها. يبدو أن # 2047 مفتوح على أمل إصلاح هذا لمزيد من بيئات CI

نشرنا اليوم 7.0.6 والذي نأمل أن يحل هذا الأمر. نتخطى الآن المطالبة تمامًا إذا بدا أنك تعمل في بيئة CI.

أخبرنا إذا استمرت المشكلات!

يعمل لدينا الآن: https://github.com/testing-library/react-testing-library/pull/809/files

شكرا لك على الإصلاح السريع!

سؤال: عندما يطالب npx7 ثم يقوم المستخدم بتثبيت الحزمة المفقودة ،

  1. أين يتم تخزين الحزمة؟ يبدو أنه لم يتم تثبيته كحزمة npm عالمية.
  2. كيف تجبر npx على فحص وتنزيل أحدث نسخة من "make"؟ لقد واجهتنا مشكلة أن npx يصنعها محاصر بالإصدار القديم المثبت محليًا من "يجعل".
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات