تايب سكريبت - بابل لا يقوم بترجمة جميع الملفات


أنا أقوم بتشغيل مشروع جديد باستخدام Babel 7 + Typescript. أنا أتعلم Typescript وكان من الصعب نسبيًا دمج الاثنين معًا. لقد تمكنت من القيام بذلك، لكن ما زال لدي مشكلة واحدة.

عندما أقوم بتجميع مشروعي، يتم تحويل جميع ملفات .ts من ./src/ إلى ملفات .js في ./dist/. يتم تجاهل جميع الملفات المخفية، وهذا متوقع. ومع ذلك، يتم أيضًا تجاهل جميع الملفات التي ليس لها امتداد .ts في ./src/.

إليك بعض الأوامر العديدة التي جربتها:

// package.json
"scripts": {
    // build1 compiles only the .js files
    "build1": "babel src --out-dir dist",

    // build2 compiles only the .ts files
    "build2": "babel src --out-dir dist --extensions \".ts\"",

    //build 3 compiles only the .ts files
    "build3": "babel src --out-dir dist --extensions \".ts, .js\"",

    //build 4 compiles only the .js files
    "build4": "babel src --out-dir dist --extensions \".js, .ts\""
},

إليك ملف إعدادات بايبل الخاص بي

// babel.config.js
module.exports = {
  presets: [
    "@babel/env",
    "@babel/typescript",
  ],
  plugins: [
    "transform-dynamic-import",
    "@babel/proposal-class-properties",
    "@babel/proposal-object-rest-spread"
  ],
};

أي فكرة؟

شكراً جزيلاً!

تحديث: إزالة المسافة من الوسيط --extension يعمل، لكن الآن لدي أثر جانبي لم ألاحظه من قبل. عند تشغيل الأمر "babel src --out-dir dist --extensions \".ts,.js,.json\""، أرى مشكلة مع ملفات .json حيث يتم تحويلها أيضًا إلى .js. أود أن يقوم Babel بتحويل .ts إلى .js، وتجميع ملفات .js ونسخ أي ملف آخر كما هو.

الإجابة رقم 1

لقد وجدت الحل أخيراً. كان عليّ إضافة الوسيطة --copy-files إلى الأمر.

babel src --out-dir dist --extensions ".ts,.js" --copy-files

--extensions \".ts,.js\" يخبر babel بترجمة جميع ملفات .ts و .js.

--copy-files يُخبر babel بنسخ جميع الملفات الأخرى.