
วิธีเริ่มต้นอย่างรวดเร็วด้วย VUE3.0: เข้าสู่การเรียนรู้
ฉันเขียนสคริปต์ nodejs มากมายเมื่อเร็ว ๆ นี้และประสบปัญหา หลังจากแก้ไขประเภท: "โมดูล" ของ package.json แล้ว เครื่องมือบางอย่างไม่สามารถใช้งานได้ตามปกติ (เช่น postcss-cli)
บทความนี้บันทึกวิธีแก้ปัญหาการใช้โมดูล commonjs ในโหมด esmodule เป็นหลัก
1. เปลี่ยนปลั๊กอิน
ดูเหมือนไร้สาระ แต่ก็ไม่เป็นเช่นนั้น มาดู postcss เป็นตัวอย่าง จริงๆ แล้วมีปัญหาที่ต้องติดตาม แต่ยังไม่ได้รับการอัปเดต ฉันได้เห็นการใช้งานซ้ำ เช่น postcss-es-modules (ปริมาณการดาวน์โหลดไม่สูง ฉันจึงยังไม่ได้ลองใช้)
หรือใช้ปลั๊กอินผ่านการสนับสนุนของ vite/rollup framework (เราจะพูดถึงวิธีที่กรอบงานจัดการในภายหลัง) เช่น
// tailwind.config.js
ค่าเริ่มต้นการส่งออก {
ล้างข้อมูล: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'],
darkMode: เท็จ // หรือ 'สื่อ' หรือ 'คลาส'
ธีม: {
ขยาย: {},
-
ตัวแปร: {
ขยาย: {},
-
ปลั๊กอิน: [],
-
// postcss.config.js
นำเข้า tailwind จาก 'tailwindcss'
นำเข้าคำนำหน้าอัตโนมัติจาก 'คำนำหน้าอัตโนมัติ'
นำเข้า tailwindConfig จาก './tailwind.config.js'
ค่าเริ่มต้นการส่งออก {
ปลั๊กอิน: [tailwind(tailwindConfig), คำนำหน้าอัตโนมัติ],
-
// vite.config.js
ซีเอสเอส: {
โพสต์,
} 2. ด้วยวิธีการขยายที่ nodejs รองรับ (ประเภท: "โมดูล") ให้เปลี่ยนส่วนต่อท้ายไฟล์เป็น .cjs จากนั้นคุณสามารถนำเข้าโมดูล commonjs ผ่านทางค่าเริ่มต้นการนำเข้าจาก '*.cjs' เช่น
// utils.cjs
ผลรวมฟังก์ชัน (a, b) {
ส่งคืน a + b
-
โมดูล.ส่งออก = {
ผลรวม
-
//index.js
นำเข้ายูทิลิตี้จาก './utils.js'
console.log(utils.sum(1, 2)) 3. ทำเครื่องหมายไฟล์รายการของโมดูลต่างๆ ผ่านฟิลด์ส่งออกของ package.json (นี่เป็นวิธีปฏิบัติทั่วไปสำหรับไลบรารีบุคคลที่สามส่วนใหญ่ เช่น
// package)
json.json
"ส่งออก": {
"นำเข้า": "./index.js",
"ต้องการ": "./index.cjs"
} 1. nodejs จัดการไฟล์ส่วนต่อท้าย .mjs/.cjs อย่างไร
Nodejs จะโหลดไฟล์ .mjs ด้วยโมดูล esmodule และไฟล์ .cjs ด้วย commonjs เสมอ เมื่อตั้งค่า package.json เป็นประเภท: "module" ไฟล์ .js จะถูกโหลดเป็น esmodule เสมอ