Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะป้องกัน moment.js ไม่ให้โหลดสถานที่ด้วย webpack ได้อย่างไร


ไฟล์ในเครื่องคือไฟล์ .json ที่มีชุดการแปลสำหรับสตริงข้อความที่ใช้ในไฟล์เทมเพลตธีม ใช้ไฟล์ในเครื่องแยกต่างหากสำหรับทุกภาษา

เมื่อคุณต้องการ moment.js ในโค้ดของคุณและแพ็คด้วย webpack ขนาดของบันเดิลจะใหญ่มากเนื่องจากมีไฟล์โลแคลทั้งหมด

คุณสามารถลบไฟล์โลแคลทั้งหมดได้โดยใช้ IgnorePlugin ตัวอย่างเช่น

ตัวอย่าง

const webpack = require('webpack');
module.exports = {
   plugins: [
      // Ignore all locale files of moment.js
      new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
   ],
};
// load specific locales in your code.
const moment = require('moment');
require('moment/locale/ja');
moment.locale('ja');

เมื่อทำการรวมกลุ่ม webpack จะใช้ไฟล์ locale สำหรับ ja เท่านั้น สิ่งนี้จะช่วยลดขนาดบันเดิลได้อย่างมาก