Yarn: لا يقوم "تثبيت الغزل - الإنتاج" بتثبيت التبعيات الصحيحة

تم إنشاؤها على ١٢ أكتوبر ٢٠١٦  ·  115تعليقات  ·  مصدر: yarnpkg/yarn

عند تشغيل yarn install --production لا يتم تثبيت التبعيات المطلوبة لـ forever . يبدو أن هذا مرتبط بامتلاك nodemon في devDependencies .

الرد على الخطأ:

> forever app.js
module.js:457
    throw err;
    ^
Error: Cannot find module 'minimatch'

لقد قمت بإنشاء تطبيق اختبار هنا:
https://github.com/donovan-graham/yarn-example-app

#  Steps to reproduce error
git clone https://github.com/donovan-graham/yarn-example-app.git
cd yarn-example-app
yarn install --production
npm start

#  temporary step to bypass error
rm -rf node_modules
yarn remove nodemon
yarn install --production
npm start
cat-bug

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

مرحبًا بالجميع ، آسف لأنك تواجه هذه المشكلة منذ فترة طويلة الآن.
سأخصص هذه المشكلة لنفسي وهي الآن ذات أولوية عالية ، وسأحاول إصلاحها خلال العطلات.
نرحب بشدة بالمساعدة والعلاقات العامة مع اختبارات كسر منفصلة أو إصلاح (مثالي).

ال 115 كومينتر

@ Daniel15 أعتقد أن هذا بسبب وجود nodemon أحدث نسخة من minimatch.

تستوعب وظيفة الرابط حاليًا كلاً من الأقسام والمطورين فيها. لإنتاج الحجة ، يجب منع هذا.

حتى على الغزل العادي التثبيت مع حجة الإنتاج. يتم تثبيت أحدث إصدار فقط في المسار الفعلي. هذا يجب أن يتحقق أيضا.

أواجه مشكلة مماثلة عند تشغيل yarn install --production ثم محاولة تشغيل الإصدار الخاص بي باستخدام webpack (تشغيل yarn install يعمل بشكل جيد).

> NODE_ENV=production webpack -p --config webpack/production.config.js

module.js:457
    throw err;
    ^

Error: Cannot find module 'graceful-fs'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)

وإذا كنت أتذكر بشكل صحيح ، فإن المحاولات السابقة أظهرت أخطاء مماثلة مع حزمة أخرى (ليس فقط graceful-fs )

لقد أصبحت متشابهة جدًا أيضًا ... yarn install يعمل بشكل جيد. ولكن مع العلم --production أحصل على هذا:

> yarn install --production

yarn install v0.15.1
error npm-shrinkwrap.json found. This will not be updated or respected. See [TODO] for more information.
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The platform "win32" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
[1/1] ⠐ node-sass:     at Module.require (module.js:367:17)
[-/1] ⠐ waiting...
[-/1] ⠐ waiting...
[-/1] ⠐ waiting...
error C:\vagrant\ebroker-quoteengine\node_modules\node-sass: Command failed.
Exit code: 1
Command: C:\WINDOWS\system32\cmd.exe
Arguments: /d /s /c node scripts/install.js
Directory: C:\vagrant\ebroker-quoteengine\node_modules\node-sass
Output:
module.js:341
    throw err;
    ^

Error: Cannot find module 'tough-cookie'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (C:\vagrant\ebroker-quoteengine\node_modules\node-sass\node_modules\request\lib\cookies.js:3:13)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at SpawnError (C:\Users\nathan.white\AppData\Roaming\npm\node_modules\yarnpkg\lib\errors.js:18:1)
    at ChildProcess.<anonymous> (C:\Users\nathan.white\AppData\Roaming\npm\node_modules\yarnpkg\lib\util\child.js:107:15)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at maybeClose (internal/child_process.js:827:16)
    at Socket.<anonymous> (internal/child_process.js:319:11)
    at emitOne (events.js:90:13)
    at Socket.emit (events.js:182:7)
    at Pipe._onclose (net.js:471:12)

يمكن إعادة إظهار مشكلة مماثلة مع:

npm init --yes
yarn add --dev nodemon
yarn add gulp
rm -rf node_modules
yarn install --production

سيؤدي هذا إلى تثبيت is-glob لكن ليس التبعية is-extglob :

> yarn why is-glob
yarn why v0.16.0
# ...
info Reasons this module exists
   - "nodemon#chokidar" depends on it
   - "gulp#liftoff#findup-sync" depends on it

> yarn why is-extglob
yarn why v0.16.0
#  ...
info This module exists because "nodemon#chokidar#is-glob" depends on it.

يبدو أن "نسيت" مسار التبعية gulp#liftoff أثناء عبور ..؟

تحرير: مثال أصغر:

npm init --yes
yarn add --dev [email protected]
yarn add [email protected]
rm -rf node_modules
yarn --prod
node -e "require('is-glob')"

أكدت أيضًا أن إزالة devDependencies قبل تشغيل yarn --prod تثبيت شجرة التبعية الصحيحة.

واجه فريق البرنامج الخاص بي هذه المشكلة ، وتحديداً مع الحزمة prr وهي تبعية لكل من less و pouchdb . العديد من الحزم الأخرى كانت مفقودة أيضًا من الإصدار --production لكن prr كان أول من تسبب في فشل منتجنا. كانت هذه المشكلة بمثابة نقطة توقف بالنسبة لنا نظرًا لأن حجم برنامج التثبيت الخاص بنا سيزداد بشكل كبير إذا قمنا بتضمين حزم المطورين ، لذلك عدنا إلى استخدام npm.

FWIW: يمكنني حل المشكلة عن طريق حذف قسم devDependencies من package.json قبل تشغيل yarn في الإنتاج.

كما قال gihrig أن تشغيل npm prune --production يمكن أن يزيل devDependencies مما يساعد على حل هذه المشكلة.

كما قال gihrig أن تشغيل npm prune --production يمكن أن يزيل devDependencies مما يساعد على حل هذه المشكلة.

الميزة الرئيسية للغزل على npm هي القيمة الحتمية node_modules dir أي نفسها في dev و CI والإنتاج خارج الصندوق. هل يؤدي تشغيل npm prune --production إلى نفس السلوك؟

الحل الحالي هو تثبيت devDependencies في الإنتاج أيضًا. القرص رخيص (خاصة على AWS) والتثبيت الحتمي أكثر أهمية بالنسبة لي من مساحة القرص. لذا فإن "الحل البديل" الخاص بي هو التصرف وكأن yarn --production غير موجود حاليًا.

tanx npm prune --production فقط قم بإزالة devDependencies. وفي اختباراتي ، تمت إزالة نفس الوحدات دائمًا. من ناحية أخرى ، تعد مساحة القرص رخيصة ، لذلك ربما يكون التصرف كما لو أن yarn --production لا يخرج هو الحل الأفضل :)

tanx npm prune - فقط قم بإزالة devDependencies. وفي اختباراتي ، تمت إزالة نفس الوحدات دائمًا.

هذه هي بالضبط عقلية "يعمل على جهازي" الموضحة في مشاركة مدونة Yarn . تكمن المشكلة في أنك تسمح لـ npm بتغيير حالة node_modules بدون فحص سلامة الغزل عبر ملف yarn.lock .

نأمل أن يتم طرح الحلول التي تمت مناقشتها قريبًا من خلال تحديث الغزل لاحترام أقسام dev مقابل الإنتاج. في غضون ذلك ، هناك بالفعل الكثير مما يجب أن نتأوه بشأنه مع الاختراق بعد المعالجة "npm prune".

الشيء yarn why الموصوف أعلاه هو نتيجة غير ذات صلة. يبدو أنه مجرد تأثير جانبي لكيفية بحث رمز why عن الحزم.

حاولت العثور على طريقة لطيفة للقيام بذلك دون إضافة مرور إضافي لنشر الرؤية بعد السير على الرسم البياني مرة واحدة. ألست متأكدًا مما إذا كان من المقبول تقسيم الرؤية إلى خطوة منفصلة ..؟

هناك بعض حالات الحافة المثيرة للاهتمام أيضًا ، لا يتعلق الأمر فقط بحل الرؤية بشكل صحيح:

  • A هي تبعية اختيارية لتبعية الإنتاج
  • B هي تبعية غير اختيارية لتبعية dev
  • C هي تبعية غير اختيارية لكليهما

في هذه الحالة ، يعتمد العلم الاختياري لـ C على dev مقابل prod. في dev سيكون غير اختياري ، سيكون اختياريًا في المنتج. قد يؤدي مجرد وراثة العلم الاختياري من أحد الوالدين (أو توريثه دائمًا من الوالد النابض) إلى الغرابة.

لا يزال هذا غير ثابت في 0.17.2 😢

Repro: https://gist.github.com/SimenB/2b179f3b6bca73ba824e1273ea38aed3

yarn

node index.js # works

yarn --prod

node index.js # explodes

/ cc jkrems

لا يبدو ثابتًا بالنسبة لي سواء في 0.17.2 (HearthSim / Joust # 169).

سأقوم بإعادة فتحه حيث يمكن إعادة إنتاجه بسهولة باستخدام تعليمات SimenB .

wyze قد تكون المشكلة في التثبيت نفسه ، وليس التقليم؟

فشل rm -rf node_modules/ && yarn && npm prune --production && node index.js بنفس الخطأ.

rm -rf node_modules/ && npm i && npm prune --production && node index.js بالرغم من ذلك.

أعتقد أنه لا يُقصد باستخدام الغزل و npm في نفس الوقت ، لذلك قد يكون من قبيل المصادفة أنه ينتج نفس الخطأ.

يُظهر التباين بين node_modules بعد npm i و yarn أن الغزل لا ينتج "_requiredBy" ، ربما يكون السبب وراء فشل npm prune بعد yarn install . هذه المعلومات متوفرة في ملف القفل ، لذا لا ينبغي أن تكون مشكلة ، أليس كذلك؟

نفس المشكلة هنا ، كنا نختبر بناء الإنتاج على عامل الإرساء واكتشفنا أنه مع yarn --production كانت الحزمة mime مفقودة حتى لو تم تثبيت الوحدة الأم send (المستخدمة بواسطة express) .

أعتقد أنه يجب التعامل مع هذه المشكلة بأولوية قصوى لأنها تسبب إنشاءات غير متوقعة.

كحل بديل ، أقوم ببساطة بإزالة قسم devDependencies من package.json في برنامج البناء الخاص بي.

$ jq 'del(.devDependencies)' package.json > tmp.json && mv tmp.json package.json

باتباع نصيحة @ dy-dx ، قمت بكتابة نقطة دخول مخصصة لـ Docker من أجل monkeypatch هذه المشكلة أثناء التطوير:

بادئ ذي بدء ، يجب عليك تثبيت jq في Dockerfile الخاص بك مع إضافة هذا السطر في مكان ما:

RUN apt-get update && \
    apt-get install -y jq

ثم أضف هذا البرنامج النصي في مكان ما واستخدمه كملف Dockerfile [ENTRYPOINT] أو docker-compose entrypoint entrypoint.sh

استخدم الأمر المفضل لديك لـ Dockerfile [CMD] أو docker-compose command Eg npm start

يمكن استخدام نفس البرنامج النصي في CI مع بعض التحرير لبناء الصورة

SimenB هل يمكنك إزالة node_modules من حزمة entries-test الخاصة بك والمحاولة؟

https://registry.yarnpkg.com/entries-test/-/entries-test-1.0.1.tgz#1bf192e414ceadd0cf4b77b3969df32de2985d50

استخراج كرة القطران v1.0.1 ، هناك مجلد node_modules به define-properties ووحدات نمطية أخرى. وليس لدى أي منهم أي ملف *.js .

torifat هوه ، كيف نجح ذلك في تحقيق ذلك؟ لا يمكن تضمين node_modules بدون استخدام bundledDependencies ...
سأحاول دفع مشروع نظيف (لقد حذفت المشاريع ، وسأضطر إلى إعادة إنشائها).

torifat إنه خطأ الغزل يبدو.

$ mkdir some-dir && cd some-dir && yarn init -y && yarn add object.entries && yarn pack && tar -ztvf some-dir-v1.0.0.tgz
drwxr-xr-x  0 0      0           0 Nov 27 10:36 package
-rw-r--r--  0 0      0         972 Oct 15  2015 package/node_modules/define-properties/CHANGELOG.md
-rw-r--r--  0 0      0        1080 Oct 15  2015 package/node_modules/define-properties/LICENSE
-rw-r--r--  0 0      0        2725 Oct 15  2015 package/node_modules/define-properties/README.md
-rw-r--r--  0 0      0        1593 Oct 15  2015 package/node_modules/define-properties/package.json
-rw-r--r--  0 0      0        3798 Aug 21 11:09 package/node_modules/es-abstract/CHANGELOG.md
-rw-r--r--  0 0      0        1080 Jul 29  2015 package/node_modules/es-abstract/LICENSE
-rw-r--r--  0 0      0        1812 Aug 13  2015 package/node_modules/es-abstract/README.md
-rw-r--r--  0 0      0        1989 Aug 21 11:09 package/node_modules/es-abstract/package.json
-rw-r--r--  0 0      0        1207 Jan  4  2016 package/node_modules/es-to-primitive/CHANGELOG.md
-rw-r--r--  0 0      0        1082 Nov  1  2015 package/node_modules/es-to-primitive/LICENSE
-rw-r--r--  0 0      0        2180 Nov  1  2015 package/node_modules/es-to-primitive/README.md
-rw-r--r--  0 0      0        1558 Jan  4  2016 package/node_modules/es-to-primitive/package.json
-rw-r--r--  0 0      0        1074 Sep 22  2014 package/node_modules/foreach/LICENSE
-rw-r--r--  0 0      0         593 Sep 22  2014 package/node_modules/foreach/Readme.md
-rw-r--r--  0 0      0        1297 Sep 22  2014 package/node_modules/foreach/package.json
-rw-r--r--  0 0      0        1052 Feb 14  2016 package/node_modules/function-bind/LICENSE
-rw-r--r--  0 0      0        1488 Feb 14  2016 package/node_modules/function-bind/README.md
-rw-r--r--  0 0      0        1619 Feb 14  2016 package/node_modules/function-bind/package.json
-rw-r--r--  0 0      0        1060 Jul 24  2015 package/node_modules/has/LICENSE-MIT
-rw-r--r--  0 0      0         239 Jul 24  2015 package/node_modules/has/README.mkd
-rw-r--r--  0 0      0         782 Jul 24  2015 package/node_modules/has/package.json
-rw-r--r--  0 0      0        1839 Feb 28  2016 package/node_modules/is-callable/CHANGELOG.md
-rw-r--r--  0 0      0        1082 May 19  2015 package/node_modules/is-callable/LICENSE
-rw-r--r--  0 0      0        1978 Aug 12  2015 package/node_modules/is-callable/README.md
-rw-r--r--  0 0      0        1983 Feb 28  2016 package/node_modules/is-callable/package.json
-rw-r--r--  0 0      0         421 Sep 27  2015 package/node_modules/is-date-object/CHANGELOG.md
-rw-r--r--  0 0      0        1082 Mar 13  2015 package/node_modules/is-date-object/LICENSE
-rw-r--r--  0 0      0        1751 Aug 12  2015 package/node_modules/is-date-object/README.md
-rw-r--r--  0 0      0        1420 Sep 27  2015 package/node_modules/is-date-object/package.json
-rw-r--r--  0 0      0         482 Jan 30  2015 package/node_modules/is-regex/CHANGELOG.md
-rw-r--r--  0 0      0        1081 Jan 15  2014 package/node_modules/is-regex/LICENSE
-rw-r--r--  0 0      0        1623 Jan 28  2015 package/node_modules/is-regex/README.md
-rw-r--r--  0 0      0        1512 Jan 30  2015 package/node_modules/is-regex/package.json
-rw-r--r--  0 0      0         121 Jan 26  2015 package/node_modules/is-symbol/CHANGELOG.md
-rw-r--r--  0 0      0        1082 Jan 24  2015 package/node_modules/is-symbol/LICENSE
-rw-r--r--  0 0      0        1469 Jan 24  2015 package/node_modules/is-symbol/README.md
-rw-r--r--  0 0      0        1214 Jan 26  2015 package/node_modules/is-symbol/package.json
-rw-r--r--  0 0      0        6992 Jul  5 19:14 package/node_modules/object-keys/CHANGELOG.md
-rw-r--r--  0 0      0        1080 Oct 15  2015 package/node_modules/object-keys/LICENSE
-rw-r--r--  0 0      0        2460 Oct 15  2015 package/node_modules/object-keys/README.md
-rw-r--r--  0 0      0        1955 Jul  5 19:14 package/node_modules/object-keys/package.json
-rw-r--r--  0 0      0         560 Oct  6  2015 package/node_modules/object.entries/CHANGELOG.md
-rw-r--r--  0 0      0        1082 Sep  2  2015 package/node_modules/object.entries/LICENSE
-rw-r--r--  0 0      0        2339 Sep  2  2015 package/node_modules/object.entries/README.md
-rw-r--r--  0 0      0        1636 Oct  6  2015 package/node_modules/object.entries/package.json
-rw-r--r--  0 0      0         145 Nov 27 10:36 package/package.json

استخدام npm pack يعمل كما هو متوقع (في نفس الدر).

$ npm pack && tar -ztvf some-dir-1.0.0.tgz
-rw-r--r--  0 501    20        145 Nov 27 10:36 package/package.json
-rw-r--r--  0 501    20       2460 Nov 27 10:36 package/yarn.lock

يبدو أن الغزل عازم جدًا على تضمين changelog و readme و package.json حتى أنه يشملهم من node_modules ...

باستخدام [email protected]

torifat منشور 1.0.2 الآن (باستخدام npm لتجنب الخطأ المذكور للتو) ، لا تزال نفس المشكلة

تم فتح # 2047 للخطأ المتعلق بالوحدات node_modules ، لكنه رنجة حمراء في هذه المشكلة ، حيث أن ملفي لا يزال صالحًا مع نشر كرة تار مناسبة.

(آسف بشأن الرسائل غير المرغوب فيها للأشخاص المشتركين ، سأتوقف الآن)

SimenB شكرا على وقتك. لقد اكتشفت الخطأ.

يبدو أن هذا مرتبط بـ # 2104 ، الذي فتحته للتو. node_modules/.bin بعد تثبيت OP:

$ ll node_modules/.bin
total 16
lrwxr-xr-x  1 samuelreed  staff    22B Dec  1 11:16 forever -> ../forever/bin/forever
lrwxr-xr-x  1 samuelreed  staff   109B Dec  1 11:16 nodemon -> ../../../../../Library/Caches/Yarn/npm-nodemon-1.11.0-226c562bd2a7b13d3d7518b49ad4828a3623d06c/bin/nodemon.js

تم الإصلاح عبر # 2116.

هل تم دمج # 2116 حتى الآن؟ لا يمكنني رؤيته في تاريخ الالتزام. يبدو أنه من السابق لأوانه إغلاق مجموعة من المشكلات قبل أن يتوفر الإصلاح على الأقل في الإصدار الرئيسي إذا لم يكن في إصدار ذي علامة. أيضًا ، يبدو أن # 2116 فشل في جميع الاختبارات الثلاثة. هل فاتني شيء؟

لا تزال هذه مشكلة في الإصدار 0.18.0 ، والذي يتضمن (# 2116).

نعم ، يمكنني أن أؤكد أن هذه المشكلة لا تزال موجودة في 0.18.0

من خلال ما أراه ، كان يجب أن يقدم # 2116 اختبارًا لهذه المشكلة ( test.concurrent ('- تتجاهل علامة الإنتاج تبعيات dev' ... أم أنني مخطئ؟

لا يتحقق الاختبار من السلوك الصحيح للتبعيات متعدية:
في حالتي ، تكمن المشكلة في تبعية مشتركة (lru-cache) بين prod (minimatch v2.0.0) وتبعية dev (useragent v2.1.9). لم يتم تثبيت هذا التابع المشترك في --production ، على الرغم من أن تبعية المنتج تتطلب ذلك.

beheh لا أرى أنه minimatch يستخدم lru-cache ، ربما لهذا السبب لم يتم تثبيته في الإنتاج؟

أقوم ببعض الاختبارات باستخدام 0.18.0

dep { A->B }
devDep { B }
OK
A,B are installed.
dep { A->C->D }
devDep { B->C->D }
OK
A,C,D are installed.
dep { E->A->C->D }
devDep { B->C->D }
KO
E,A,C are installed but D is missing.

هذه هي الحالة التي يوضحهاSimenB

"dependencies": {
    "entries-test": "^1.0.1"
  },
  "devDependencies": {
    "object.values": "^1.0.3"
  }

SharpEdgeMarshall شكرا للاختبار. سأضيفها كحالة اختبار.

torifat قد تفكر في إعادة فتح هذا أيضًا

SharpEdgeMarshall جرب ما يلي وهو يعمل. بحاجة لمعرفة المشكلة الفعلية.

screenshot 2016-12-06 21 18 44

SimenB بحاجة إلى التحقق قبل إعادة optionalDependencies أيضًا. الذي لديه قضية أخرى مفتوحة.

لا يزال يحدث torifat my repro: https://github.com/yarnpkg/yarn/issues/761#issuecomment -260975012

تحرير: الذي لا يحتوي على إدارات اختيارية ، يخرج grep optional yarn.lock مع 1

فشل الآن في Error: Cannot find module 'object-keys' بدلاً من فقدان define-properties بالرغم من ذلك.

$ yarn why object-keys
yarn why v0.18.0
[1/4] 🤔  Why do we have the module "object-keys"...?
[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
info This module exists because "object.values#define-properties" depends on it.
✨  Done in 0.09s.

يبدو أنه يتعامل الآن مع مستوى أعمق ، لكنه يفشل بعد ذلك

SimenB حاولت للتو مع:

{
  "dependencies": {
    "entries-test": "^1.0.1"
  },
  "devDependencies": {
    "object.values": "^1.0.3"
  }
}

وهو يعمل بشكل جيد بالنسبة لي. هل يمكنك عمل yarn cache clean والمحاولة مرة أخرى؟

كلا ، فشل

SimenB هل يمكنك مشاركة ملف yarn.lock ؟

$ rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn && node index.js && yarn --prod && node index.js
yarn cache v0.18.0
success Cleared cache.
✨  Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
✨  Done in 0.92s.
yarn install v0.18.0
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
✨  Done in 0.18s.
module.js:471
    throw err;
    ^

Error: Cannot find module 'object-keys'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/simbekkh/repos/ugh/node_modules/define-properties/index.js:3:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

بالنسبة لي ، لا يعمل مثال SimenB مع 0.18.0 حتى بعد yarn cache clean

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


define-properties@^1.1.2:
  version "1.1.2"
  resolved "http://npm.office.crweb.it/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
  dependencies:
    foreach "^2.0.5"
    object-keys "^1.0.8"

entries-test@^1.0.1:
  version "1.0.2"
  resolved "http://npm.office.crweb.it/entries-test/-/entries-test-1.0.2.tgz#f1039aba3a2effc9c3a56b6b1180694b2789e4d5"
  dependencies:
    object.entries "^1.0.3"

es-abstract@^1.6.1:
  version "1.6.1"
  resolved "http://npm.office.crweb.it/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99"
  dependencies:
    es-to-primitive "^1.1.1"
    function-bind "^1.1.0"
    is-callable "^1.1.3"
    is-regex "^1.0.3"

es-to-primitive@^1.1.1:
  version "1.1.1"
  resolved "http://npm.office.crweb.it/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
  dependencies:
    is-callable "^1.1.1"
    is-date-object "^1.0.1"
    is-symbol "^1.0.1"

foreach@^2.0.5:
  version "2.0.5"
  resolved "http://npm.office.crweb.it/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"

function-bind@^1.0.2, function-bind@^1.1.0:
  version "1.1.0"
  resolved "http://npm.office.crweb.it/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"

has@^1.0.1:
  version "1.0.1"
  resolved "http://npm.office.crweb.it/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
  dependencies:
    function-bind "^1.0.2"

is-callable@^1.1.1, is-callable@^1.1.3:
  version "1.1.3"
  resolved "http://npm.office.crweb.it/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"

is-date-object@^1.0.1:
  version "1.0.1"
  resolved "http://npm.office.crweb.it/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"

is-regex@^1.0.3:
  version "1.0.3"
  resolved "http://npm.office.crweb.it/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"

is-symbol@^1.0.1:
  version "1.0.1"
  resolved "http://npm.office.crweb.it/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"

object-keys@^1.0.8:
  version "1.0.11"
  resolved "http://npm.office.crweb.it/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"

object.entries@^1.0.3:
  version "1.0.4"
  resolved "http://npm.office.crweb.it/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
  dependencies:
    define-properties "^1.1.2"
    es-abstract "^1.6.1"
    function-bind "^1.1.0"
    has "^1.0.1"

object.values@^1.0.3:
  version "1.0.4"
  resolved "http://npm.office.crweb.it/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
  dependencies:
    define-properties "^1.1.2"
    es-abstract "^1.6.1"
    function-bind "^1.1.0"
    has "^1.0.1"
$ rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn && node index.js && rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn --prod && node index.js
yarn cache v0.18.0
success Cleared cache.
✨  Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
✨  Done in 0.93s.
yarn cache v0.18.0
success Cleared cache.
✨  Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
✨  Done in 0.76s.
module.js:471
    throw err;
    ^

Error: Cannot find module 'object-keys'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/simbekkh/repos/ugh/node_modules/define-properties/index.js:3:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

ملف القفل:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1


define-properties@^1.1.2:
  version "1.1.2"
  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
  dependencies:
    foreach "^2.0.5"
    object-keys "^1.0.8"

entries-test@^1.0.1:
  version "1.0.2"
  resolved "https://registry.yarnpkg.com/entries-test/-/entries-test-1.0.2.tgz#f1039aba3a2effc9c3a56b6b1180694b2789e4d5"
  dependencies:
    object.entries "^1.0.3"

es-abstract@^1.6.1:
  version "1.6.1"
  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99"
  dependencies:
    es-to-primitive "^1.1.1"
    function-bind "^1.1.0"
    is-callable "^1.1.3"
    is-regex "^1.0.3"

es-to-primitive@^1.1.1:
  version "1.1.1"
  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
  dependencies:
    is-callable "^1.1.1"
    is-date-object "^1.0.1"
    is-symbol "^1.0.1"

foreach@^2.0.5:
  version "2.0.5"
  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"

function-bind@^1.0.2, function-bind@^1.1.0:
  version "1.1.0"
  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"

has@^1.0.1:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
  dependencies:
    function-bind "^1.0.2"

is-callable@^1.1.1, is-callable@^1.1.3:
  version "1.1.3"
  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"

is-date-object@^1.0.1:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"

is-regex@^1.0.3:
  version "1.0.3"
  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"

is-symbol@^1.0.1:
  version "1.0.1"
  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"

object-keys@^1.0.8:
  version "1.0.11"
  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"

object.entries@^1.0.3:
  version "1.0.4"
  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
  dependencies:
    define-properties "^1.1.2"
    es-abstract "^1.6.1"
    function-bind "^1.1.0"
    has "^1.0.1"

object.values@^1.0.3:
  version "1.0.4"
  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
  dependencies:
    define-properties "^1.1.2"
    es-abstract "^1.6.1"
    function-bind "^1.1.0"
    has "^1.0.1"

SimenB شكرا. يبدو أن ذاكرة التخزين المؤقت لدي لديها مشكلة. بعد مسح ذاكرة التخزين المؤقت الخاصة بي الآن فشل. لكن مع خطأ مختلف. أعطني بعض الوقت للتحقيق.

بالمناسبة ، أوصي باستخدام https://github.com/Mottie/Octopatcher في هذا الموضوع

عملي جدا مع العديد من خطوط الانتاج

image

سأتوقف عن إرسال البريد العشوائي الآن

SimenB فشل في v0.18.0 لكن لا يمكن إعادة الإنتاج في آخر master .

تحديث: غريب! إنها تفشل مرة أخرى

torifat يمكنني أن أؤكد أنه لا يعمل مع السيد (v0.19.0)
rm -rf node_modules && rm yarn.lock && ../yarn/bin/yarn cache clean && ../yarn/bin/yarn && node index.js && rm -rf node_modules && rm yarn.lock && ../yarn/bin/yarn cache clean && ../yarn/bin/yarn --prod && node index.js

yarn cache v0.19.0-0
success Cleared cache.
Done in 0.58s.
yarn install v0.19.0-0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 10.18s.
yarn cache v0.19.0-0
success Cleared cache.
Done in 0.09s.
yarn install v0.19.0-0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 4.26s.
module.js:457
    throw err;
    ^

Error: Cannot find module 'object-keys'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/sharpedge/git/Utility/YarnBug/node_modules/define-properties/index.js:3:12)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)

لدي نفس المشاكل (بعض الحزم غير مثبتة بعلامة --production ) مع المستقر الحالي 0.17.10 :

curl -o- -L https://yarnpkg.com/install.sh | bash && ~/.yarn/bin/yarn install --production && rm -rf ~/.yarn

ولكن عندما أحاول الإنشاء الليلي الحالي Yarn 0.19.0-20161207.1241 تم تثبيت جميع الحزم المطلوبة بشكل صحيح لتطبيقي:

wget https://yarnpkg.com/install.sh && chmod +x install.sh && ./install.sh --nightly && rm -f install.sh && ~/.yarn/bin/yarn install --production && rm -rf ~/.yarn

SharpEdgeMarshallSimenB هل يمكنك تجربة أحدث إصدار ليلي وتأكيد استمرار المشكلة.

المستخدمة في حاويات عامل الإرساء: https://gist.github.com/nodkz/b843d65a3430a4f510e5f5eb0cc759d2

nodkz 18 خارج ومستقر (على ما أظن؟) ، ولكن كما يمكن رؤيته في

أعتقد أنه لا يزال يتطلب install yarn@rc :

'dist-tags': { rc: '0.18.0', latest: '0.17.10' },

هذا جديد إذن ، لقد حصلت على 0.18 قبل أيام قليلة بمجرد التثبيت. على أي حال ، لا يزال الخطأ قابلاً للتكرار في 0.18.

nodkz Repro هو:

{
  "dependencies": {
    "entries-test": "^1.0.1"
  },
  "devDependencies": {
    "object.values": "^1.0.3"
  }
}

نعم ، تواجه مشكلات مماثلة مع مشاريعنا أيضًا:

rm -rf package.json yarn.lock node_modules && npm init --yes && yarn add --dev nodemon && yarn add glob-stream && yarn --prod && node -p "require('glob-stream')"

فشل في كل من 0.18 وأحدث فرع رئيسي.

متفق عليه. لا يزال قادرًا على التراجع مع أحدث.

أعتقد أن مشكلتي مشابهة أو مماثلة لهذه المشكلة. فشل البناء في Heroku ، ولكن فقط لبيئة الإنتاج. تم تعطيل التخزين المؤقت.

Resolving node version ^7.2.1 via semver.io...
       Downloading and installing node 7.2.1...
       Using default npm version: 3.10.10
       Resolving yarn version (latest) via semver.io...
       Downloading and installing yarn (0.18.1)...
       Installed yarn 0.18.1
-----> Restoring cache
       Skipping cache restore (disabled by config)
-----> Building dependencies
       Installing node modules (yarn)
       yarn install v0.18.1
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       warning [email protected]: The platform "linux" is incompatible with this module.
       info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
       [3/4] Linking dependencies...
       [4/4] Building fresh packages...
       error /tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/bcrypt: Command failed.
       Exit code: 1
       Command: sh
       Arguments: -c node-pre-gyp install --fallback-to-build
       Directory: /tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/bcrypt
       Output:
       module.js:472
       throw err;
       ^

       Error: Cannot find module 'abbrev'
       at Function.Module._resolveFilename (module.js:470:15)
       at Function.Module._load (module.js:418:25)
       at Module.require (module.js:498:17)
       at require (internal/module.js:20:19)
       at Object.<anonymous> (/tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/nopt/lib/nopt.js:10:14)
       at Module._compile (module.js:571:32)
       at Object.Module._extensions..js (module.js:580:10)
       at Module.load (module.js:488:32)
       at tryModuleLoad (module.js:447:12)
       at Function.Module._load (module.js:439:3)
       info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed

لدي أيضًا هذه المشكلة. ما زلت أستخدم yarn install للإنتاج حتى اللحظة لأن yarn install --production لا يقوم بتثبيت التبعيات الصحيحة بشكل صحيح.

أخشى أنه لا يمكنني فعل ذلك ، لأنه تم تشفيره إلى yarn install --production في حزمة بناء Heroku على ما أعتقد (المرجع https://github.com/heroku/heroku-buildpack-nodejs/issues/337)

adamreisnz معذرة ، كنت أشير إلى الإصدار الأصلي وليس مشكلتك.

لحل مشكلتك ، أقترح عليك وضع كل devDependencies إلى dependencies في الوقت الحالي حتى يتم إصلاح هذه المشكلة.

dashmug آه حسنًا ، لا مشكلة.

على أي حال ، أفضل استخدام npm على Heroku في الوقت الحالي حتى يصبح Yarn أكثر استقرارًا ، بدلاً من التلاعب بالحلول المبتكرة. لقد وضعت yarn.lock في .gitignore حتى لا يتم تحميله إلى repo / heroku. بهذه الطريقة ، لا يزال بإمكاني استخدام الغزل محليًا ، لكنه لن يؤثر على التصميمات على Heroku.

adamreisnz هذا yarn ، ألا تعتقد ذلك؟

dashmug ليس حقًا ، على الأقل ، ليس بالنسبة لنا. أنا لا أستخدمه لتأمين إصدارات الحزمة في مكانها. لدينا تبعيات حديثة للغاية ولا توجد مشكلات حول "يعمل على جهازي". كان السبب الرئيسي للانتقال إلى الغزل على npm هو السرعة ، والتي بالنسبة للتطبيقات المعقدة التي تحتوي على الكثير من التبعيات ، رأيت أنها تنتقل من 5 دقائق مقابل npm install إلى 22 ثانية مع الغزل.

طالما أن الغزل غير مستقر ، يمكنني التعايش مع عملية بناء أبطأ قليلاً على Heroku ، طالما يمكنني استخدام الغزل محليًا للتطوير والتثبيت السريع :)

يتم الإعلان عن الغزل على أنه إلى حد كبير بديل للإسقاط لـ npm. ومع ذلك ، فإن بعض المشكلات التي واجهناها والتي لم يتم حلها بعد ، مثل هذه المشكلة ، تمنعنا من استخدامها على هذا النحو. لذلك أرى أنها أداة إضافية في الوقت الحاضر ، وهي مفيدة لشيء واحد ، ولكن ليس هناك لشيء آخر بعد. ليس لدي شك في أن الوقت سيعمل بشكل رائع على الرغم من :)

يبدو أن هذا تم إصلاحه بالنسبة لي في 0.18.1.

كان Heroku يستخدم 0.18.1 في الوقت الذي فشل فيه ، لذلك لم يتم إصلاحه بعد afaik.

تم إصلاح هذه المشكلة بالنسبة لي في 0.18.1.

تم إصلاح repro السابق الخاص بي بـ 0.18.1 🎉

سأحاول غدًا باستخدام تطبيق حقيقي

0.18.1 يعمل على إصلاح مشكلاتي. أنا عربة سعيدة 🎉

حاولت 0.18.1 باستخدام تطبيق غير تافه كان يفشل سابقًا ويبدو أنه يعمل الآن! 🎉

أعتقد أنني سأعطيها مرة أخرى قريبًا :)

عذرا ، ما زلت لا تعمل مع 0.18.1 ؛

-----> Node.js app detected
-----> Creating runtime environment

       NPM_CONFIG_LOGLEVEL=error
       NPM_CONFIG_PRODUCTION=true
       NODE_ENV=production
       NODE_MODULES_CACHE=true
-----> Installing binaries
       engines.node (package.json):  ^7.2.1
       engines.npm (package.json):   unspecified (use default)

       Resolving node version ^7.2.1 via semver.io...
       Downloading and installing node 7.2.1...
       Using default npm version: 3.10.10
       Resolving yarn version (latest) via semver.io...
       Downloading and installing yarn (0.18.1)...
       Installed yarn 0.18.1
-----> Restoring cache
       Loading 2 from cacheDirectories (default):
       - node_modules
       - bower_components (not cached - skipping)
-----> Building dependencies
       Installing node modules (yarn)
       yarn install v0.18.1
       [1/4] Resolving packages...
       [2/4] Fetching packages...
       warning [email protected]: The platform "linux" is incompatible with this module.
       info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
       [3/4] Linking dependencies...
       [4/4] Building fresh packages...
       error /tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/bcrypt: Command failed.
       Exit code: 1
       Command: sh
       Arguments: -c node-pre-gyp install --fallback-to-build
       Directory: /tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/bcrypt
       Output:
       module.js:472
       throw err;
       ^

       Error: Cannot find module 'abbrev'
       at Function.Module._resolveFilename (module.js:470:15)
       at Function.Module._load (module.js:418:25)
       at Module.require (module.js:498:17)
       at require (internal/module.js:20:19)
       at Object.<anonymous> (/tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/nopt/lib/nopt.js:10:14)
       at Module._compile (module.js:571:32)
       at Object.Module._extensions..js (module.js:580:10)
       at Module.load (module.js:488:32)
       at tryModuleLoad (module.js:447:12)
       at Function.Module._load (module.js:439:3)
       info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed

       We're sorry this build is failing! You can troubleshoot common issues here:
       https://devcenter.heroku.com/articles/troubleshooting-node-deploys

       Some possible problems:

       - A module may be missing from 'dependencies' in package.json
       https://devcenter.heroku.com/articles/troubleshooting-node-deploys#ensure-you-aren-t-relying-on-untracked-dependencies

       - This module may be specified in 'devDependencies' instead of 'dependencies'
       https://devcenter.heroku.com/articles/nodejs-support#devdependencies

       Love,
       Heroku

 !     Push rejected, failed to compile Node.js app.
 !     Push failed

لم يساعد إعداد NODE_MODULES_CACHE=false أيضًا.

هنا شجرة التبعية:

├─┬ [email protected]
│ └─┬ [email protected]
│   └─┬ [email protected]
│     └─┬ [email protected]
│       └─┬ [email protected]
│         └── [email protected] 
├─┬ [email protected]
│ └─┬ @google-cloud/[email protected]
│   └─┬ @google-cloud/[email protected]
│     └─┬ [email protected]
│       └─┬ [email protected]
│         └─┬ [email protected]
│           └── [email protected] 
└─┬ [email protected]
  └── [email protected] 

أعتقد أن المشكلة تكمن في الاعتماد العميق عبر google-cloud . هذه وحدة إنتاج ، وكلاهما bable-cli و instanbul هما مطوران فقط.

علاوة على ذلك ، عندما أستخدم yarn why abbrev ، فإنه يفشل في التقاط المعالين من الوالدين google-cloud و babel-cli :

yarn why v0.18.1
[1/4] 🤔  Why do we have the module "abbrev"...?
[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
info Reasons this module exists
   - "istanbul" depends on it
   - "istanbul#nopt" depends on it

jkrems ، SimenB هل أطرح قضية جديدة لذلك أم لا؟

istanbul#nopt أيضًا خاطئًا ، في why الناتج.
أنا طريقي إلى العمل الآن ، سأختبر في تطبيق حقيقي بعد ذلك

SimenB شكرا ، اسمحوا لي أن أعرف إذا كنت بحاجة إلى مزيد من المعلومات ، على سبيل المثال قائمة وحدات package.json الخاصة بي بأكملها.

تحرير: في الواقع هنا فقط في حالة ، لأنني سأنام الآن ؛

"dependencies": {
    "bcrypt": "^1.0.1",
    "bluebird": "^3.4.6",
    "body-parser": "^1.15.2",
    "chalk": "^1.1.3",
    "compression": "^1.6.2",
    "cookie-parser": "^1.4.3",
    "cors": "^2.8.1",
    "express": "^4.14.0",
    "glob": "^7.1.1",
    "google-cloud": "^0.45.1",
    "handlebars": "^4.0.6",
    "html-pdf": "^2.1.0",
    "http-as-promised": "^1.1.0",
    "meanie-express-error-handling": "git+https://github.com/meanie/express-error-handling#2.0.0",
    "meanie-express-github-service": "^2.0.2",
    "meanie-express-jwt-service": "^1.0.2",
    "meanie-express-raven-service": "^1.0.1",
    "meanie-mail-composer": "^1.2.0",
    "meanie-mongoose-only-id": "^1.0.1",
    "meanie-mongoose-set-properties": "^1.0.1",
    "meanie-mongoose-to-json": "^1.1.0",
    "meanie-multer-mime-types-filter": "^1.0.1",
    "meanie-passport-refresh-strategy": "^1.1.2",
    "moment": "^2.17.1",
    "mongoose": "^4.7.3",
    "morgan": "^1.7.0",
    "multer": "^1.1.0",
    "passport": "^0.3.2",
    "passport-http-bearer": "^1.0.1",
    "passport-local": "^1.0.0",
    "phantomjs-prebuilt": "2.1.14",
    "sendgrid": "^4.7.1",
    "sendgrid-mailer": "^1.0.7",
    "socket.io": "^1.7.2",
    "yargs": "^6.5.0"
  },
  "devDependencies": {
    "babel-cli": "^6.16.0",
    "babel-preset-es2015": "^6.18.0",
    "chai": "^3.5.0",
    "chai-as-promised": "^6.0.0",
    "dirty-chai": "^1.2.2",
    "eslint": "^3.12.1",
    "express-simulate-latency": "0.0.2",
    "istanbul": "^1.0.0-alpha.2",
    "mocha": "^3.2.0",
    "mocha-clean": "^1.0.0",
    "nodemon": "^1.11.0",
    "sinon": "^1.17.6",
    "sinon-as-promised": "^4.0.0",
    "sinon-mongoose": "^1.3.0"
  }

لا يزال هذا فشل للتطبيق في العمل. يبدو أن Yarn غير قادر على اتباع مسارات عميقة. هنا npm ls entities بعد yarn --prod

$ npm ls entities
[email protected] /Users/simbekkh/repos/frontpage
└─┬ @finn-no/[email protected]
  └─┬ [email protected]
    └─┬ [email protected]
      └─┬ [email protected]
        └─┬ [email protected]
          └─┬ [email protected]
            └── UNMET DEPENDENCY entities@~1.1.1

npm ERR! missing: entities@~1.1.1, required by [email protected]

مثل adamreisnz ، yarn why لا يلتقط الشجرة الصحيحة.

$ yarn why entities
yarn why v0.18.1
[1/4] 🤔  Why do we have the module "entities"...?
[2/4] 🚚  Initialising dependency graph...
[3/4] 🔍  Finding dependency...
[4/4] 🚡  Calculating file sizes...
info Reasons this module exists
   - "cheerio" depends on it
   - "cheerio#htmlparser2" depends on it
info Disk size without dependencies: "108kB"
info Disk size with unique dependencies: "108kB"
info Disk size with transitive dependencies: "108kB"
info Amount of shared dependencies: 0
✨  Done in 0.40s.

istanbul # nopt يبدو خاطئًا أيضًا ، في سبب الإخراج.

أنت على حق ، يبدو أن هذا هو جوهر هذه المشكلة. يبدو أنه يعتقد أن nopt هو جزء من حزمة istanbul ، بدلاً من google-cloud و / أو babel-cli ، وربما لهذا السبب لم يتم تثبيته للإنتاج البيئات ، لأن istanbul ليس تبعية prod.

مرحبًا بالجميع ، آسف لأنك تواجه هذه المشكلة منذ فترة طويلة الآن.
سأخصص هذه المشكلة لنفسي وهي الآن ذات أولوية عالية ، وسأحاول إصلاحها خلال العطلات.
نرحب بشدة بالمساعدة والعلاقات العامة مع اختبارات كسر منفصلة أو إصلاح (مثالي).

لدينا نفس المشكلة في prod env مع lib bl التي هي تبعية gulp-imagemin تبعيات اختيارية 😕

[~/Workspaces/my-project 12:05:33] NODE_ENV=production yarn
yarn install v0.18.1
info No lockfile found.
[1/4] 🔍  Resolving packages...
warning algoliasearch > [email protected]: Just use Array.isArray directly
warning gulp-file > through2 > xtend > [email protected]:
warning raven > [email protected]: use uuid module instead
warning wiredep > bower-config > [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
warning chromedriver > [email protected]: this package has been reintegrated into npm and is now out of date with respect to npm
warning mversion > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning wiredep > glob > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning webdriverio > request > [email protected]: use uuid module instead
warning gulp > vinyl-fs > glob-watcher > gaze > globule > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning gulp > vinyl-fs > glob-watcher > gaze > globule > glob > [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
warning sprity-lwip > lwip > decree > [email protected]: This package is discontinued. Use lodash@^4.0.0.
[2/4] 🚚  Fetching packages...
warning [email protected]: The engine "ender" appears to be invalid.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
[1/7] ⠂ fsevents: GET https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.0.15/fse-v1.0.15-node-v51-darwi
[2/7] ⠂ gifsicle
[3/7] ⠂ jpegtran-bin
[4/7] ⠂ optipng-bin
error /Users/fdubost/Workspaces/my-project/node_modules/gifsicle: Command failed.
Exit code: 1
Command: sh
Arguments: -c node lib/install.js
Directory: /Users/fdubost/Workspaces/my-project/node_modules/gifsicle
Output:
module.js:474
    throw err;
    ^

Error: Cannot find module 'bl'
    at Function.Module._resolveFilename (module.js:472:15)
    at Function.Module._load (module.js:420:25)
    at Module.require (module.js:500:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/Users/fdubost/Workspaces/my-project/node_modules/tar-stream/extract.js:2:10)
    at Module._compile (module.js:573:32)
    at Object.Module._extensions..js (module.js:582:10)
    at Module.load (module.js:490:32)
    at tryModuleLoad (module.js:449:12)
    at Function.Module._load (module.js:441:3)

شكرا لمساعدتك

إنه يعمل إذا قمت بإضافة bl يدويًا إلى حزمة json ...

أي أخبار عن هذا؟

ليس بعد ، أقوم ببناء مدقق JS مشترك مخصص يتحقق من بنية node_modules بشكل مستقل عن خوارزميات الرفع والدقة الخاصة بـ Yarn https://github.com/yarnpkg/yarn/pull/2419.
سيكون قادرًا على التقاط جميع الحالات الموصوفة في هذا الخطأ وحمايتنا من الانحدارات المستقبلية.

@ kittens تلقي نظرة على ما يحدث هنا.
الخطأ ليس تافهًا ، لذا نرحب بأي فكرة إضافية

حسنًا ، نجمع كل النسخ الآن بأحدث صندوق تخزين.
لم يعد يُعاد إنتاج المثال في التعليق الأول وتمر yarn check --verify-tree

نعم ، تم إصلاح هذا repro بـ 0.18.1.

فكرتان:

هل هناك بعض السجلات مع القرارات التي تحدث يمكنني مشاركتها معك؟

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

SimenB ،

في هذه الحالة يمكنك تجربة:

yarn install --production --verbose
yarn check --production --verify-tree

مع أحدث فرع رئيسي.
إذا كنت لا تريد إرسال السجلات علنًا ، راسلني على [email protected]

نعم ، 0.18.1 لا يزال مكسورًا ، ولم يختبر 0.19 (أو سيد). إذا استمر النسخ (آمل ألا!) ، فسأرسل لك السجلات بشكل خاص

لنغلق هذه المهمة لأن مشكلة العنوان قد تم حلها.
هناك نوعان من الملفات المفتوحة التي لم أعد التحقق منها بعد: # 2263 و # 2141 لا تتردد في التعليق هناك أو إنشاء واحدة جديدة لحالتك ونسخة لي.

2 all: عندما تعلق بأن التثبيت غير صحيح ، يرجى تضمين package.json حتى يتمكن الآخرون من إعادة إنتاج ذلك.
مجد إلى jkrems لاتخاذ خطوة إلى الأمام وتقديم نص برمجي رائع: https://github.com/yarnpkg/yarn/issues/761#issuecomment -265823529

bestander هل أعدت التحقق أيضًا من https://github.com/yarnpkg/yarn/issues/761#issuecomment -268130124؟

adamreisnz ، هل يمكنك مشاركة package.json مرة أخرى من فضلك؟

https://github.com/yarnpkg/yarn/issues/761#issuecomment -268130124 هي مشكلة مختلفة.

هذا فشل واحد مقابل yarn install --production .

هذه المشكلة تدور حول الانتهاء بنجاح من yarn install --production ولكنها لا تفعل الشيء الصحيح.

bestander لقد شاركتها في التعليق أدناه ، https://github.com/yarnpkg/yarn/issues/761#issuecomment -268201708 ، هتاف

لا يزال فشل مع الماجستير (c98df16b) بالنسبة لي ...

yarn check --verify-tree رميات ، وهذا واعد. الكثير من هؤلاء هم أقسام التطوير بالرغم من ذلك.

yarn check v0.20.0-0
error "babel-preset-es2015" not installed
error "browserify-middleware" not installed
error "cheerio" not installed
error "codeceptjs" not installed
error "del-cli" not installed
error "eslint" not installed
error "eslint-config-finn" not installed
error "espower-loader" not installed
error "hashmark" not installed
error "interfake" not installed
error "nightmare" not installed
error "nightmare-upload" not installed
error "nock" not installed
error "nodemon" not installed
error "nyc" not installed
error "power-assert" not installed
error "sinon" not installed
error "supertest" not installed
error "uglifyify" not installed
error "@finn-no/express-base#nunjucks#chokidar#anymatch" not installed
error "@finn-no/express-base#unleash-client#request#json-stringify-safe" not installed
error "@finn-no/express-base#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed
error Found 22 errors.

تشغيل التطبيق ، فإنه يفشل في فقدان أي مباراة.

npm ls الأقسام الأخرى المفقودة ، مما يجعل الأمر أكثر منطقية

npm ERR! extraneous: [email protected] /Users/simbekkh/repos/frontpage/node_modules/node-pre-gyp
npm ERR! missing: anymatch@^1.3.0, required by [email protected]
npm ERR! missing: entities@~1.1.1, required by [email protected]
npm ERR! missing: json-stringify-safe@~5.0.1, required by [email protected]

وهذه كانت الملاحظة / سبب المشكلة: https://github.com/yarnpkg/yarn/issues/761#issuecomment -268331340

أنت على حق ، يبدو أن هذا هو جوهر هذه المشكلة. يبدو أن nopt هو جزء من حزمة istanbul ، بدلاً من google-cloud و / أو babel-cli ، وربما لهذا السبب لم يتم تثبيته لبيئات الإنتاج ، لأن اسطنبول ليست تبعية prod.

أوه ، آسف ، SimenB

yarn check --prodution --verify-tree

سأقوم بتحرير تعليقي

عمل yarn check --verify-tree --production يعطي مخرجات جيدة (يتفق مع npm ls ):

yarn check v0.20.0-0
error "@finn-no/express-base#nunjucks#chokidar#anymatch" not installed
error "@finn-no/express-base#unleash-client#request#json-stringify-safe" not installed
error "@finn-no/express-base#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed
error Found 3 errors.

@ bestander ، سأرسل لك بريدًا إلكترونيًا package.json و yarn.lock وسجل التثبيت المطول 😄

dashmug هل تريد مني إنشاء تذكرة جديدة لهذه المشكلة؟ لا تزال مشكلة تثبيت التبعيات غير الصحيحة (وإن كان ذلك للإنتاج فقط) ، لذلك أعتقد أنها مرتبطة بهذه التذكرة.

@ تم إرسال البريد الإلكتروني
في حين أن @finn-no/express-base غير متاح للجمهور ، فإن الحزم الثلاثة الأخرى في المخرجات متوفرة ، لذا نأمل أن تتمكن من إعادة الإنتاج باستخدام الحزم العامة فقط.

هل يجب أن أفتح عددًا جديدًا؟

adamreisnz ، هل يمكنك من فضلك إنشاء عدد جديد؟
يمكنني إعادة إنتاجها ولكنها قضية مختلفة عن العنوان

هو ذات الصلة. ربما نفس السبب. مجرد عرض مختلف. أود أن أضع ذلك كمسألة مختلفة لأنه ليس بالضبط نفس ما يقوله العنوان.

SimenB ، شكرا ، سآخذ نظرة

طيب سوف تفعل يا شباب.

@ bestander إن إنشاء حزمة مع تلك الثلاثة فقط في المخرجات التي فشلت تجعلها

{
  "name": "app",
  "version": "1.0.0",
  "dependencies": {
    "brakes": "^2.5.1",
    "compression": "^1.6.2",
    "envalid": "^2.4.0",
    "express": "^4.14.0",
    "object.entries": "^1.0.4",
    "prom-client": "^7.0.0",
    "response-time": "^2.3.2",
    "spaden": "^7.13.1",
    "yarn-issue-repro-package": "^1.0.0"
  },
  "devDependencies": {
    "babel-preset-es2015": "^6.18.0",
    "browserify": "^13.1.1",
    "browserify-middleware": "^7.1.0",
    "cheerio": "^0.22.0",
    "codeceptjs": "^0.4.13",
    "del-cli": "^0.2.1",
    "eslint": "^3.12.2",
    "eslint-config-finn": "^1.0.1",
    "espower-loader": "^1.0.1",
    "hashmark": "^4.1.0",
    "interfake": "^1.19.0",
    "mocha": "^3.2.0",
    "nightmare": "^2.9.0",
    "nightmare-upload": "^0.1.1",
    "nock": "^9.0.2",
    "nodemon": "^1.11.0",
    "nyc": "^10.0.0",
    "power-assert": "^1.4.1",
    "sinon": "^1.17.6",
    "supertest": "^2.0.1",
    "uglify-js": "^2.7.5",
    "uglifyify": "^3.0.4"
  }
}

package.json من yarn-issue-repro-package

{
  "name": "yarn-issue-repro-package",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "nunjucks": "^2.5.2",
    "pretty-error": "^2.0.2",
    "unleash-client": "^1.0.0-beta.7"
  }
}

ومن المثير للاهتمام أنه ينتج 4 أخطاء بدلاً من 3 ...

$ yarn check v0.20.0-0                                                                                                   │├─ [email protected]
error "yarn-issue-repro-package#nunjucks#chokidar#anymatch" not installed                                              │└─ [email protected]
error "yarn-issue-repro-package#unleash-client#request#json-stringify-safe" not installed                              │✨  Done in 2.65s.
error "yarn-issue-repro-package#nunjucks#yargs#string-width#code-point-at" not installed                               │ ~/repos/yarn-issue-repro-package  vim package.json
error "yarn-issue-repro-package#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed      │ ~/repos/yarn-issue-repro-package  npm publish
error Found 4 errors.

لست متأكدًا من أن هذه هي نفس المشكلة أم لا ، ولكن هنا هو الإخراج (تم اختباره باستخدام 0.19.1)

أعتقد أنني وجدت السبب الجذري لمشكلة التثبيت.
يمكن إعادة إنتاج فشل تثبيت الحزمة بواسطة package.json التالية:

{ "dependencies": {
    "bcrypt": "^1.0.1",
    "gamepad": "1.4.2"
  },
  "devDependencies": {
     "istanbul": "^1.0.0-alpha.2"
  }
}

ثم الأوامر

rm -rf node_modules yarn.lock
yarn install
rm -rf node_modules
yarn install --production
npm ls abbrev

في هذا التكوين ، abbrev غير مثبت.

يستخدم abbrev بواسطة istanbul و nopt (كما يتضح من yarn why abbrev ). nopt بواسطة istanbul و node-pre-gyp (والذي يستخدمه bcrypt و gamepad )

عند حذف abbrev في رافعة الحزمة ، يتم استخدام الكود التالي لتحديد وظيفة isIgnored الجديدة لسجل الرفع:

          // switch to non ignored if earlier deduped version was ignored
          if (existing.isIgnored() && !info.isIgnored()) {
            existing.isIgnored = info.isIgnored;
          }

abbrev هو أحد سجلات الرفع الأولى التي تمت معالجتها. في تلك اللحظة ، السجل الحالي هو istanbul#abbrev (تم التجاهل بسبب تجاهل istanbul ) ، والسجل المكرر هو istanbul#nopt#abbrev ، والذي تم تجاهله أيضًا في ذلك الوقت لنفس السبب .

نظرًا لتجاهل كلا السجلين في ذلك الوقت ، لا يتم ضبط وظيفة التجاهل كما كان من المفترض - لأن nopt لن يتم تجاهله في خصم لاحق بسبب التبعية بمقدار node-pre-gyp . يمكن أن تتغير حالة التجاهل لكلا السجلين في أي وقت ، لذلك يجب أن تخلط وظيفة التجاهل الجديدة بينهما.

وبالفعل ، تختفي مشكلة التثبيت عندما نستبدل هذه الخطوط بـ

          // switch to non ignored if earlier deduped version was ignored
          if (existing.isIgnored()) {
            if (info.isIgnored()) {
              // both are ignored now, but any one could become non ignored later on.
              let oldIsIgnored = existing.isIgnored;
              existing.isIgnored = () => oldIsIgnored() && info.isIgnored();
            } else {
              existing.isIgnored = info.isIgnored;
            }
          }

blexrob ، اكتشاف رائع!
هل ترسل العلاقات العامة؟
يوجد اختبار معطل لـ "يجب ألا تفقد التبعيات عند التثبيت مع --production" في Integration.js والتي يجب إصلاحها الآن

@ bestander ،

d#es5-ext -> es6-symbol#es5-ext -> es6-set#es5-ext -> es6-iterator#es5-ext -> es6-map#es5-ext -> es5-ext#es6-iterator -> es6-set#es6-iterator -> es6-weak-map#es6-iterator -> event-emitter#es5-ext -> d#es5-ext

لذا ، فإن نهج المكالمة المتكررة الساذج هو خارج ...

نعم ، أعتقد أنه يحتاج إلى بعض التغيير والتبديل ولكن الفكرة تبدو صحيحة

لدي مشكلة مع الوحدة النمطية phantomjs-prebuilt (كاعتماد على التبعية) مع الغزل 0.27.5-1
والآن أقوم بعمل وهمي yarn add phantomjs-prebuilt ، قبل yarn install --production .

يؤسفني أن أقول إن هذا لا يزال يمثل مشكلة في Yarn 1.3.2.
تفشل عمليات الإنشاء الخاصة بي على Netlify عندما أستخدم Yarn 1.3.2 ولكن نجحت مع Yarn 0.18.2.
أخطاء الإصدار مع cannot find module 'are-we-there-yet' وفقط مع علامة الإنتاج.

adamreisnz ، هذا الموضوع أكبر من أن يتعقب جميع المشكلات.
هل يمكنك رفع واحد جديد مع سيناريو repro؟

@ أفضل ما في الأمر ، شكرًا.

بالنسبة لشخص ما زال لا يمكنه الحصول على عمل ولا يريد تثبيت jq ، يمكنه استخدامه

$ python -c "import json; p = json.loads(open('package.json').read()); del p['devDependencies']; open('package.json', 'w').write(json.dumps(p, indent=2));"

أنا على الغزل 1.17.3 والعقدة v10.16.2 في lerna monorepo. لا تزال تواجه نفس المشكلة.

استطيع ان اؤكد ذلك ايضا
لدي الكثير من التبعيات ، ولكن عندما أستخدم yarn install --production ، يتم تثبيت وحدتين فقط.
من الجدير بالذكر أنني على Lerna monorepo مشابه لـ hannadrehman مع مساحات عمل Yarn ، والتي قد تفسر السلوك المتطرف.

إصدار الغزل: 1.22.0
العقدة: v12.16.1

npm install --production الرغم من أن

hannadrehman هل المشروع المعني هو حزمة من monorepo الخاص بك؟

نفس مشكلة @ TAnas0

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات