Как быстро начать работу с 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.