Cara cepat memulai VUE3.0: Memasuki pembelajaran.
Saya telah menulis banyak skrip nodejs baru-baru ini dan mengalami masalah. Setelah memodifikasi tipe: "modul" dari package.json, beberapa alat tidak dapat digunakan secara normal (misalnya postcss-cli).
Artikel ini terutama mencatat cara mengatasi masalah penggunaan modul commonjs dalam mode esmodule.
1. Mengganti plug-in
sepertinya tidak masuk akal, padahal sebenarnya tidak. Kita ambil contoh postcss. Sebenarnya ada masalah yang perlu ditindaklanjuti, tapi belum diupdate. Saya telah melihat implementasi ulang seperti postcss-es-modules (volume unduhan tidak tinggi, jadi saya belum mencobanya).
Atau gunakan plug-in melalui dukungan framework vite/rollup itu sendiri (kita akan membicarakan bagaimana framework itu sendiri menanganinya nanti), misalnya
// tailwind.config.js ekspor bawaan { pembersihan: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'], darkMode: false, // atau 'media' atau 'kelas' tema: { memperpanjang: {}, }, varian: { memperpanjang: {}, }, plugin: [], } // postcss.config.js impor tailwind dari 'tailwindcss' impor autoprefixer dari 'autoprefixer' impor tailwindConfig dari './tailwind.config.js' ekspor bawaan { plugin: [tailwind(tailwindConfig), autoprefixer], } // vite.config.js css: { pascacss, }2. Melalui metode perluasan yang didukung oleh nodejs (ketik: "modul"), ubah akhiran file
menjadi
.cjs, lalu Anda dapat mengimpor modul commonjs melalui import default from '*.cjs';
fungsi jumlah(a, b) { kembali a + b } modul.ekspor = { jumlah } // indeks.js impor utilitas dari './utils.js' console.log(utils.sum(1, 2))
3. Tandai file entri modul yang berbeda melalui bidang ekspor package.json (ini juga merupakan praktik umum untuk sebagian besar perpustakaan pihak ketiga)
; json "ekspor": { "impor": "./index.js", "membutuhkan": "./index.cjs" }
1. Bagaimana cara nodejs menangani file akhiran .mjs/.cjs?
Nodejs selalu memuat file .mjs dengan modul esmodule dan file .cjs dengan commonjs. Ketika package.json diatur ke tipe: "modul", file .js selalu dimuat sebagai esmodule.