Comment démarrer rapidement avec VUE3.0 : Début de l'apprentissage
J'ai récemment écrit beaucoup de scripts nodejs et j'ai rencontré un problème. Après avoir modifié le type : "module" de package.json, certains outils ne peuvent pas être utilisés normalement (ex : postcss-cli).
Cet article explique principalement comment résoudre le problème de l'utilisation du module commonjs en mode esmodule.
1. Remplacez le plug-in ;
cela semble absurde, mais ce n'est pas le cas. Prenons postcss comme exemple. En fait, il y a eu un problème à suivre, mais il n'a pas encore été mis à jour. J'ai vu des réimplémentations telles que postcss-es-modules (le volume de téléchargement n'est pas élevé, donc je ne l'ai pas encore essayé).
Ou utilisez des plug-ins via le support du framework vite/rollup lui-même (nous parlerons de la façon dont le framework lui-même le gère plus tard), par exemple
// tailwind.config.js exporter par défaut { purge : ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'], darkMode : false, // ou 'media' ou 'class' thème: { étendre: {}, }, variantes : { étendre: {}, }, plugins : [], } // postcss.config.js importer le vent arrière depuis 'tailwindcss' importer le préfixe automatique depuis 'autoprefixer' importer tailwindConfig depuis './tailwind.config.js' exporter par défaut { plugins : [tailwind(tailwindConfig), préfixe automatique], } // vite.config.js css : { post-css, }
2. Grâce à la méthode d'expansion prise en charge par nodejs (type : "module"), remplacez le suffixe du fichier par .cjs, puis vous pourrez importer le module commonjs via l'importation par défaut à partir de '*.cjs', par exemple
// utils.cjs;
fonction somme(a, b) { retourner a + b } module.exports = { somme } // index.js importer des utilitaires depuis './utils.js' console.log(utils.sum(1, 2))
3. Marquez les fichiers d'entrée des différents modules via le champ d'exportation de package.json (c'est également une pratique courante pour la plupart des bibliothèques tierces, par exemple
// package) ;
json "exportations": { "import": "./index.js", "require": "./index.cjs" }
1. Comment nodejs gère-t-il les fichiers de suffixe .mjs/.cjs ?
Nodejs charge toujours les fichiers .mjs avec le module esmodule et les fichiers .cjs avec commonjs. Lorsque package.json est défini sur type : "module", les fichiers .js sont toujours chargés en tant que esmodule.