Definitelytyped: لا يتم ترجمة webpack-env.d.ts مع node.d.ts

تم إنشاؤها على ٩ فبراير ٢٠١٦  ·  6تعليقات  ·  مصدر: DefinitelyTyped/DefinitelyTyped

قبل أن تسأل: نعم ، لقد بحثت - ووجدت # 6334 - على الرغم من أن هذا لا يعالج مشكلتي.

أنا أكتب تطبيق ويب يستخدم Webpack. نتيجة لذلك ، أحتاج إلى الوصول إلى webpack-env.d.ts في الواجهة الأمامية ، لكني مهتم أيضًا باستخدام الوحدة النمطية url من Node (مقابل url.parse ). إذا طلبت webpack-env.d.ts و node.d.ts في نفس ملف المراجع ، فمن المتوقع أن ينكسر لأن Node يعيد تعريف require . IOW ، أحتاج إلى الوصول إلى الوحدة النمطية node.d.ts url و تعريف webpack الخاص بـ require .

يمكنني التغلب على هذا باستخدام const url: any = require('url') ، على الرغم من أن هذا ليس مثاليًا وأود أن يكون لدي كتابات لهذه الوحدة. قد يكون الخيار الآخر هو تقسيم node.d.ts إلى الوحدات المكونة لها وجعل المعلم node.d.ts يتطلب كل وحدة فردية ، على الرغم من أنني لست متأكدًا مما إذا كان هذا سيؤدي إلى كسر أي شيء عن العديد من الأشخاص الذين يعتمدون على هذا ملف إعلان TypeScript - ولا أريد بشكل خاص اختراقه معًا محليًا.

أي اقتراحات؟

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

ولكن ماذا لو كان @types/node تبعية لتبعية أخرى (على سبيل المثال ، fs-extra ، jsdom ، shelljs ، tape
انتهى الأمر أيضًا بإزالة webpack-env و

if ((module as any).hot) {
...

😢

ال 6 كومينتر

حسنًا ، من الناحية الفنية ، ما زلت غير موجود في بيئة العقدة وليس من الصحيح تضمين ملف node.d.ts بأكمله. أنت تستخدم حزمة npm تعمل بنفس طريقة عمل "url" للعقدة ، ولكن في بيئة المتصفح. ما يمكنك فعله هو استخراج تلك الكتابة من node.d.ts والحصول على url.d.ts منفصل ، كما اقترحت بالفعل. مجرد تقسيم node.d.ts إلى وحدات أصغر قد لا يناسب كل الاحتياجات ، لأن التوقيعات قد تكون مختلفة بسبب اختلافات البيئة (Buffers vs Arrays) أو عمليات التنفيذ. أود أن أقترح كتابة مستقلة لحزمة "url" هذه.

لقد واجهت نوعًا ما نفس المشكلة حيث أستخدم تضمين typings/index.ts في tsconfig.json لتضمين جميع الكتابة. عند إضافة كل من webpack-env.d.ts و node ، من الواضح أن المترجم المنسوخ يشكو. هل هناك طريقة للتغلب على ذلك؟

test_index.ts(1,28): error TS2339: Property 'context' does not exist on type 'NodeRequire'.

كانت الطريقة التي "حلتها" هي إنشاء ملف طباعة منفصل للوحدات النمطية الخاصة بالعقدة التي أردت استخدامها. قليلا من الاختراق ، للأسف.

انتهى بي الأمر بإزالة webpack-env تمامًا لأنني كنت بحاجة فقط إلى كتابة واحدة في مشروعي بالكامل من أجل ذلك. نأمل أن تبقى على هذا النحو. لقد جربت الحل الذي قدمته ولكني حقًا لا أحب تلويث ملفاتي بالمراجع قدر الإمكان. شكرا على الرد

سوراب شارما / هندسة الجودة
[email protected] / (925) -878-5722
يامر ، مايكروسوفت
http://www.foklepoint.com

في 14 آب (أغسطس) 2016 ، الساعة 7:08 صباحًا ، كتب Dan [email protected] :

كانت الطريقة التي "حلتها" هي إنشاء ملف طباعة منفصل للوحدات النمطية الخاصة بالعقدة التي أردت استخدامها. قليلا من الاختراق ، للأسف.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

بالتأكيد ، أنا أيضًا: (لكنني كنت بحاجة إلى هذه الوحدة ، للأسف. foklepoint

ولكن ماذا لو كان @types/node تبعية لتبعية أخرى (على سبيل المثال ، fs-extra ، jsdom ، shelljs ، tape
انتهى الأمر أيضًا بإزالة webpack-env و

if ((module as any).hot) {
...

😢

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