আগে, বাবেল লাইন যুক্ত করবে module.exports = exports["default"]
। এটি আর এটি করে না। এর আগে যা বোঝায় তা হ'ল:
var foo = require('./foo');
// use foo
এখন আমাকে এটি করতে হবে:
var foo = require('./foo').default;
// use foo
একটি বিশাল চুক্তি নয় (এবং আমি অনুমান করছি এটিই এর সাথে হওয়া উচিত ছিল)। সমস্যাটি হ'ল আমার কাছে প্রচুর কোড রয়েছে যা জিনিসগুলি যেভাবে ব্যবহৃত কাজ করে তার উপর নির্ভর করে (আমি এর বেশিরভাগটি ES6 আমদানিতে রূপান্তর করতে পারি, তবে এটির সমস্ত নয়)। আমার প্রকল্পের মধ্য দিয়ে না গিয়ে কীভাবে আমাকে পুরানো পথে কাজ করতে হবে তার টিপস দিতে পারেন এবং এটি সমাধান করার জন্য (বা এটি করার জন্য কোডমড কীভাবে লিখবেন সে সম্পর্কে কিছু নির্দেশও বেশ চটুল হবে)।
ধন্যবাদ!
উদাহরণ:
ইনপুট:
const foo = {}
export default foo
বাবেল 5 দিয়ে আউটপুট
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
module.exports = exports["default"];
বাবেল 6 (এবং es2015 প্লাগইন) এর সাথে আউটপুট:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
লক্ষ্য করুন আউটপুট মধ্যে একমাত্র পার্থক্য হয় module.exports = exports["default"]
।
সম্পাদন করা
আমার নির্দিষ্ট সমস্যাটি সমাধান করার পরে আমি এই ব্লগপোস্টটিতে আগ্রহী হতে পারি: ভুল বোঝার ES6 মডিউলগুলি, বাবেল, অশ্রু এবং একটি সমাধান আপগ্রেড করা
if (false) { require('./foo') }
ওয়েবপ্যাক সহ foo.js
ফলাফলটি বান্ডিল সহ আসলেই এড়িয়ে যাবে ।
false
সেখানে আপনার টগল হওয়ার কি শেষ ? যদি এটির এমন একটি শর্ত থাকে যা আপনার ওয়েবপ্যাক কনফিগারেশনে পাওয়া যায় তবে অন্য কোনও বিকল্প থাকতে পারে।
export default {foo, bar}
সঙ্গে module.exports = {foo, bar}
। আমি ভুল পদ্ধতিটি পছন্দ করেছি যা এখন সমর্থিত নয়।
require
আপনি যদি বাবেল ব্যবহার করে এমন কোনও কোডবেসে কাজ করে থাকেন তবে কী কী দরকার ? সম্ভাবনা রয়েছে, এমন অন্যান্য পন্থা রয়েছে যা আপনাকে যেভাবেই এড়াতে দেয় allow