
Как быстро начать работу с VUE3.0: Начало обучения
В последнее время я писал много скриптов nodejs и столкнулся с проблемой. После изменения типа «модуль» файла package.json некоторые инструменты невозможно использовать нормально (например, postcss-cli).
В этой статье в основном описывается, как решить проблему использования модуля commonjs в режиме esmodule.
1. Заменить плагин
вроде бы ерунда, но это не так. Давайте возьмем в качестве примера postcss. На самом деле, возникла проблема, которую необходимо устранить, но она еще не обновлена. Я видел повторные реализации, такие как postcss-es-modules (объем загрузки невелик, поэтому еще не пробовал).
Или используйте плагины через поддержку самого фреймворка vite/rollup (о том, как сам фреймворк с этим справляется, мы поговорим позже), например
//tailwind.config.js
экспорт по умолчанию {
очистка: ['./*.html', './src/**/*.{vue,js,ts,jsx,tsx,css}'],
darkMode: false, // или «медиа», или «класс»
тема: {
продлевать: {},
},
варианты: {
продлевать: {},
},
плагины: [],
}
// postcss.config.js
импортировать попутный ветер из 'tailwindcss'
импортировать автопрефиксер из 'autoprefixer'
импортировать TailwindConfig из «./tailwind.config.js»
экспорт по умолчанию {
плагины: [tailwind(tailwindConfig), автопрефиксер],
}
// vite.config.js
CSS: {
постксс,
} 2. С помощью метода расширения, поддерживаемого nodejs (тип: «модуль»), измените суффикс файла на .cjs, а затем вы сможете импортировать модуль commonjs, используя импорт по умолчанию из '*.cjs', например
// utils.cjs;
функция sum(a, b) {
вернуть а + б
}
модуль.экспорт = {
сумма
}
// индекс.js
импортировать утилиты из «./utils.js»
console.log(utils.sum(1, 2)) 3. Отметьте входные файлы различных модулей через поле экспорта package.json (это также обычная практика для большинства сторонних библиотек), например
// package. JSON
"экспорт": {
"импорт": "./index.js",
"require": "./index.cjs"
} 1. Как nodejs обрабатывает файлы с суффиксом .mjs/.cjs?
Nodejs всегда загружает файлы .mjs с модулем esmodule и файлы .cjs с модулем commonjs. Если для package.json задан тип: «module», файлы .js всегда загружаются как esmodule.