
Como começar rapidamente com o VUE3.0: Iniciando o aprendizado,
tenho escrito muitos scripts nodejs recentemente e encontrei um problema. Após modificar o tipo: "module" do package.json, algumas ferramentas não podem ser usadas normalmente (por exemplo, postcss-cli).
Este artigo registra principalmente como resolver o problema de uso do módulo commonjs no modo esmodule.
1. Substituir o plug-in
parece bobagem, mas não é. Tomemos o postcss como exemplo. Na verdade, houve um problema para acompanhar, mas ainda não foi atualizado. Já vi reimplementações como postcss-es-modules (o volume de download não é alto, então ainda não experimentei).
Ou use plug-ins através do suporte da própria estrutura vite/rollup (falaremos sobre como a própria estrutura lida com isso mais tarde), por exemplo
// tailwind.config.js
padrão de exportação {
purgar: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'],
darkMode: false, // ou 'media' ou 'class'
tema: {
estender: {},
},
variantes: {
estender: {},
},
plug-ins: [],
}
//postcss.config.js
importar tailwind de 'tailwindcss'
importar autoprefixer de 'autoprefixer'
importar tailwindConfig de './tailwind.config.js'
padrão de exportação {
plug-ins: [tailwind(tailwindConfig), autoprefixer],
}
//vite.config.js
CSS: {
pós-css,
} 2. Através do método de expansão suportado por nodejs (tipo: " module
"), altere o sufixo do arquivo para .cjs, e então você pode importar o módulo commonjs através de import default from '*.cjs';
função soma(a, b) {
retornar a + b
}
módulo.exportações = {
soma
}
//index.js
importar utilitários de './utils.js'
console.log(utils.sum(1, 2)) 3. Marque os arquivos de entrada de diferentes módulos através do campo exports de package.json (esta também é uma prática comum para a maioria das bibliotecas de terceiros, por exemplo,
// package. json
"exportações": {
"importar": "./index.js",
"require": "./index.cjs"
} 1. Como o nodejs lida com arquivos de sufixo .mjs/.cjs?
O Nodejs sempre carrega arquivos .mjs com o módulo esmodule e arquivos .cjs com commonjs. Quando package.json é definido como tipo: "module", os arquivos .js são sempre carregados como esmodule.