Request: خطأ توافق Webpack

تم إنشاؤها على ١٩ نوفمبر ٢٠١٥  ·  18تعليقات  ·  مصدر: request/request

أنا أستخدم حزمة الويب لحزم الكود من جانب الخادم الخاص بنا. عندما صدمت حزمة الطلب من 2.65.0 إلى 2.67.0. لقد تلقيت هذا الخطأ:

./web/dist/server.js:153022
    module.exports = function() { throw new Error("define cannot be used indirect"); };

Error: define cannot be used indirect

webpack:///(webpack)/buildin/amd-define.js?:1
module.exports = function() { throw new Error("define cannot be used indirect"); };
stale

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

نجح الحل الذي ذكره manumax بالنسبة لي دون الحاجة إلى الرجوع إلى إصدار سابق من وحدة الطلب إلى 2.65.0. بمعنى آخر

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

ال 18 كومينتر

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

يبدو أن هذه المشكلة حدثت من قبل مع الحزم الأخرى عند التحويل البرمجي باستخدام حزمة الويب. يبدو أنهم قاموا بإصلاح بعض الحالات ، ولكن من الواضح أنها ليست تلك التي تحدث في هذا الإصدار الجديد من الطلب ، راجع: https://github.com/webpack/webpack/issues/138

لست متأكدًا من المشكلة في حالة الطلب ، وما هو الحل المناسب.

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

يبدو أن سبب ذلك هو ترقية توقيع http من 0.11.x إلى 1.1.x ، وهو أمر غير متوافق مع حزمة الويب. الوحدة النمطية _root_ التي تسيء التصرف هي json-schema ، والتي تحتوي على اختبار AMD غير تقليدي: https://github.com/kriszyp/json-schema/issues/59

لضمان التوافق المستمر مع حزمة الويب ، أقترح الرجوع إلى 0.11.x لتوقيع http.

لم يتم دمج اختبارات WebPack الخاصة بنا بعد https://github.com/request/request/pull/1629 لذلك إذا كان أي شخص منكم يريد المساهمة وإصلاحهم فسيكون ذلك رائعًا!

بصرف النظر عن ذلك json-schema يبدو أنه ميت. لذلك دعونا نرى كيف ستسير الامور. الطلب حاليًا أيضًا غير متوافق مع semver ، لذلك سيكون من الآمن لك التمسك بإصدار ثابت في الحزمة الخاصة بك.

simov لا أفهم تمامًا ما علاقة المشكلة التي تشير إليها (# 1629 Webpack karma config) بهذه المشكلة؟

يتعلق تكوين Webpack karma بحقيقة أنه إذا كان لدينا اختبارات لـ Wepack ، فربما كنا سنمنع هذا الخطأ.

لذلك ، على الرغم من أنك إذا كنت تستخدم webpack ، فقد ترغب في المساهمة في جعل دعمها مواطنًا من الدرجة الأولى هنا.

simov سأحاول أخذ طعنة في اختبارات Webpack في نهاية هذا الأسبوع.

شكرا لك: +1:

لقد بدأت للتو في العمل مع جافا سكريبت ، لذلك آمل حقًا أن أكون قد فعلت كل شيء بشكل صحيح ، في حالة السماح لي الآن. أتمنى أن تكون اختبارات حزمة الويب تعمل ، وحل جميع المشكلات التي كانت تمنع @ pho3nixf1re من إكمال طلب السحب.

لا أعرف ما إذا كان يمكن أن يساعد بأي شكل من الأشكال ، ولكن يتم شرح حل بديل ممكن هنا: webpack / webpack # 138 ، أي لإضافة ما يلي إلى تهيئة webpack الخاصة بك:

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

كما ذكر من قبل أنا جديد تمامًا على جافا سكريبت ولا أعرف ما إذا كان لها أي آثار ، أخبرني بخلاف ذلك.

كحل بديل ، يمكنك الآن استخدام الإصدار 2.65.0 ، حيث لا تحدث المشكلة ..

نعم ، أعتقد أنك على حق :) لكي أكون صادقًا ، حاولت العودة إلى 2.65.0 لكنني لم أتمكن من إنجاحها ، لقد تلقيت نفس الخطأ تمامًا. ربما فعلت شيئا خاطئا.

لم ينجح الرجوع إلى الإصدار 2.65.0 بالنسبة لي ، ولكن الخطوات التالية نجحت في ذلك:

  1. يتم إرجاع حزمة توقيع http يدويًا إلى الإصدار 0.11.0
  2. تمت إضافة التكوين الإضافي التالي إلى ملف webpack.config.js الخاص بي:
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] أصلحه لي. أنا أستخدم طلب الوعد والعقدة 5.3.0 / npm 3.3.12.

نجح الحل الذي ذكره manumax بالنسبة لي دون الحاجة إلى الرجوع إلى إصدار سابق من وحدة الطلب إلى 2.65.0. بمعنى آخر

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

singhshashitheopak للأسف أيا من هذين العملين - لقد تتبعت الوحدة المسيئة وقمت بحذفها ، وحل المشكلة. ما زلت أعمل على طريقة لإصلاحها في حزمة الويب (أنا جديد جدًا عليها).

طلب الوعد يستخدم أحدث إصدار من الطلب ، مثل "request": "^2.34"

ها هو المسار:

node_modules\request-promise\node_modules\request\node_modules\http-signature\node_modules\jsprim\node_modules\json-schema\lib\validate.js

تم إصلاح $ npm install --save [email protected] بالنسبة لي أيضًا.

لدي هذه المشكلة عند استخدام الحزمة google-spreadsheet ، والتي تستخدم request . لسوء الحظ ، لم تنجح أي من الإصلاحات التي استخدمها الأشخاص في هذه الصفحة. إذا استخدمت الإصلاح noParse أحصل على خطأ جديد: Invalid left-hand side in assignment على هذا الرمز: __webpack_require__(643) = function(ids, factory) {

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.

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