Cet article poursuivra l'apprentissage de node et présentera comment appeler le module commonjs en mode esmodule. J'espère qu'il sera utile à tout le monde !
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 enregistre et résout principalement 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 suivi issue, 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 (je parlerai de la façon dont le framework lui-même le gère plus tard), par exemple
// tailwind.config.js export default { purge: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'], darkMode: false, // or 'media' or 'class' theme: { extend: {}, }, variants: { extend: {}, }, plugins: [], } // postcss.config.js import tailwind from 'tailwindcss' import autoprefixer from 'autoprefixer' import tailwindConfig from './tailwind.config.js' export default { plugins: [tailwind(tailwindConfig), autoprefixer], } // vite.config.js css: { postcss, }
2 via la méthode d'expansion prise en charge par nodejs (tapez : "module" ), ajoutez le fichier Changez le suffixe en .cjs, puis vous pouvez importer le module commonjs via l'importation par défaut à partir de '*.cjs' ; par exemple
// utils.cjs function sum(a, b) { return a + b } module.exports = { sum } // index.js import utils from './utils.js' console.log(utils.sum(1, 2))
3. Marquez les fichiers d'entrée des différents modules via le champ d'exportation du package. json (ceci est également couramment utilisé par la plupart des bibliothèques tierces) ; par exemple
// package.json "exports": { "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.
Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel Nodejs !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!