Rollup-plugin-typescript2: الارتباطات الرمزية لا تعمل

تم إنشاؤها على ٣٠ أكتوبر ٢٠١٩  ·  12تعليقات  ·  مصدر: ezolenko/rollup-plugin-typescript2

typescript2 symlink issue

عند إنشاء ارتباط رمزي إلى التبعية ، تظهر مجموعة التحديثات الخطأ "خطأ: رمز مميز غير متوقع (لاحظ أنك بحاجة إلى مكونات إضافية لاستيراد ملفات ليست جافا سكريبت)"

بيئة

إصدارات

  • مطبوعة: ^ 3.6.4
  • تراكمي: "^ 1.26.0"
  • rollup-plugin-typescript2: ^ 0.24.3

rollup.config.js

tsconfig.json

package.json

إخراج البرنامج المساعد مع الإسهاب 3

bug

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

نفس المشكلة ، لكني أستخدم lerna لربط الحزم ، ويشكو التراكمي من رمز مميز غير متوقع للحزم المرتبطة.

ال 12 كومينتر

روابط رموز نظام الملفات؟ ما هو نظام التشغيل ، الروابط اللينة أو الصلبة؟ أي تغيير يمكنك إجراء الريبو مع الاستنساخ؟

نظام تشغيل Windows. تم إنشاء ارتباط رمزي باستخدام خيار "npm link" للوحدة الخارجية. إذا تم تثبيت الوحدة فلا مشكلة. ولكن للاختبار محليًا ، نحتاج إلى إنشاء ارتباطات رمزية وهذا لا يعمل فقط مع المكون الإضافي typecript2. مع البرنامج المساعد printcript1 تعمل الارتباطات الرمزية ولكن التعدادات لا تعمل.

نفس المشكلة ، لكني أستخدم lerna لربط الحزم ، ويشكو التراكمي من رمز مميز غير متوقع للحزم المرتبطة.

بالضبط نفس المشكلة على windows مع lerna
إذا قمت بنسخ المجلد مباشرة إلى node_modules ، فكل شيء على ما يرام ، ولكن مع ارتباط رمزي لا يعمل

PavaniVakaTerenceZthealjey أي فرصة لإعادة الشراء صغير مع الاستنساخ؟

@ azolenko آسف ، لا. لكني قمت بتضييق نطاق الموضوع قليلاً. لقد لاحظت أنه إذا تم نسخ الوحدة الخارجية إلى دليل التطبيق فإنها تعمل. ولكن إذا كان مجرد ارتباط رمزي فهو لا يعمل. على سبيل المثال: مع yalc يمكننا اختبار التبعيات الخارجية بسهولة. لأنه يقوم بإنشاء مجلد yalc في دليل التطبيق ونسخ وحدة خارجية إلى هذا المجلد ثم يقوم بإنشاء ارتباط رمزي من مجلد yalc إلى node_modules. أتمنى أن يعطي هذا بعض الدليل.

ezolenko لقد اكتشفت بالفعل ما كانت المشكلة في حالتي وليس لها علاقة بهذا المكون الإضافي (إنه يعمل بشكل مثالي) أو الروابط الرمزية لهذا الأمر.
إنه أكثر من عيب في الكتابة المطبوعة نفسها ، أو بالأحرى تكوينها يعتمد على ملفات json.
كانت المشكلة أن الارتباط الرمزي كان يحل إلى ملف خارج CWD.
لقد قمت ببساطة بنقل أمر الإنشاء الخاص بي إلى ملف package.json ذي المستوى الأعلى وبدأ كل شيء يعمل.

أعتقد أننا على نفس الصفحة هنا.

194

PavaniVakaTerenceZthealjey أي فرصة لإعادة الشراء صغير مع الاستنساخ؟

ezolenko https://github.com/moki/mokui هناك واحد.

لقد قمت بحل المشكلة رقم 194 ، في حالة مواجهة أي شخص لنفس المشكلة ، فيما يلي أقدم الحل:

عندما يحاول المرء إنشاء كل حزمة منفصلة داخل monorepo ، يحاول التراكمي حل @organization/package-name وإدراجه في الإصدار. لا تريد ذلك ، لذا لتجنب ذلك عند إنشاء كل حزمة ، أقوم بتحليل package.json ، واستخراج مفاتيح الحقل dependencies ، ثم التحقق منها داخل callback one يمكن أن توفر الحقل external لتكوين التجميع الداخلي. سيؤدي هذا إلى النتيجة المرجوة.

import json from "rollup-plugin-json";

const pkg = process.env.LERNA_PACKAGE_NAME &&
          require(`${process.env.LERNA_PACKAGE_NAME}/package.json`);

const dependencies = ({ dependencies }) => Object.keys(dependencies || {});

const pkgdependencies = dependencies(pkg);

/* exported rollup configuration */
const config = {
    /* your config goes here... */
    /* id is the source name if list of dependencies includes
     * id source name, then mark it as external,
     */
    external: id => pkgdependencies.includes(id)
};

export default config;

نفس العدد و rollup-plugin-typescript يعمل

تحدث المشكلة أيضًا عندما يكون الملف الموجود ضمن src ارتباطًا رمزيًا بملف منسوب خارج المشروع.

على سبيل المثال هيكل الملف على النحو التالي:

core/core-client/src/api.ts
myapp/myapp-client/src/api.ts
myapp/myapp-app/src/domain/api.ts -> ../../../myapp-client/src/domain/api.ts
myapp/myapp-app/src/domain/core -> ../../../../core/core-client/src/domain/
...

عندما أقوم بتجميع المشروع في myapp / myapp-app ،
شكوى تراكمية مع الخطأ أدناه:

[ ERROR ]  Rollup: Parse Error: ../myapp-client/src/domain/api.ts:28:7
           Unexpected token (Note that you need plugins to import files that are not JavaScript)

     L28:  export interface IPrimus extends Primus {

مع تمييز الكلمة interface باللون الأحمر

الحل البديل الخاص بي هو استخدام خطاف ما قبل / ما بعد في البرنامج النصي npm لإلغاء ربط الملفات وربطها ...
لذلك يمكن لـ IDE الخاص بي البحث عن أحدث إصدار أثناء التطوير ، ويمكنه التجميع عند الإنشاء.

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