টিএল; ডিআর
আপনি ব্যবহার করতে হবে
require('./app').default();
ব্যাখ্যা
বাবেল 5 এর জন্য একটি সামঞ্জস্য হ্যাক export default
থাকত: যদি মডিউলটিতে কেবল একটি রফতানি থাকে এবং এটি একটি ডিফল্ট রফতানি হয় তবে এটি নির্ধারিত হয়েছিল module.exports
। সুতরাং, উদাহরণস্বরূপ, আপনার মডিউল app.js
export default function () {}
এটি স্থানান্তরিত হবে
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = function () {};
module.exports = exports["default"];
এটি সম্পূর্ণরূপেrequire
-ing ব্যাবেল-ট্রান্সপ্লাইড মডিউলগুলির সাথে সামঞ্জস্য করার জন্য করা হয়েছিল (যেমন আপনি করছেন)। এটিও বেমানান ছিল; যদি কোনও মডিউলে নামযুক্ত এবং ডিফল্ট উভয় রফতানি থাকে তবে এটি- require
ডি করা যাবে না ।
বাস্তবে, ES6 মডিউল স্পেক অনুসারে, একটি ডিফল্ট রফতানি নাম সহ নামযুক্ত রফতানির চেয়ে আলাদা নয়default
। এটি কেবল সিনট্যাকটিক চিনি যা সংকলনের সময়ে স্থিতিশীলভাবে সমাধান করা যেতে পারে, তাই এটি
import something from './app';
এই হিসাবে একই
import { default as something } from './app';
বলা হচ্ছে যে, ব্যাবিল 6 মডিউলগুলি স্থানান্তর করার সময় আন্তঃব্যবহারযোগ্যতা হ্যাক ছাড়ার সিদ্ধান্ত নিয়েছে appears এখন, আপনার মডিউল অ্যাপ্লিকেশন। Js হিসাবে স্থানান্তরিত হয়
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function () {};
আপনি যেমন দেখতে পাচ্ছেন, তেমন কোনও অ্যাসাইনমেন্ট নেই module.exports
। করার require
এই মডিউল, আপনাকে যা করতে হবে
require('./app').default();
.babelrc
? আপনি কোথাও বাবেল বিকল্পগুলি উল্লেখ করছেন? আমি জিজ্ঞাসা করছি কারণ বাবেল 6 ডিফল্টরূপে কোনও কিছুই স্থানান্তরিত করে না এবং আপনি যেes2015
পোস্ট কোডটি দিয়েছেন সেটিতে আপনি প্রিসেটটি নির্দিষ্ট করে দিচ্ছেন না ।