Формат библиотеки в Vite
Формат библиотеки в этом уроке - es и cjs, без umd.
Модуль es
подключают
через import
в современных сборках.
Вариант cjs
нужен там,
где код
ещё ждёт
require
в Node.
Оба файла
содержат одно API,
но синтаксис обёртки
разный.
Исходник
по-прежнему
отдаёт строку
hello:
export function sayHello() {
return 'hello';
}
Список форматов
задают полем formats
в build.lib,
точка входа
остаётся
src/index.js:
import { defineConfig } from 'vite'
export default defineConfig({
build: {
lib: {
entry: 'src/index.js',
formats: ['es', 'cjs'],
fileName: 'hello-lib',
},
},
})
Соберём проект:
npm run build
В dist
лежат два файла:
hello-lib.js
для es
и hello-lib.cjs
для cjs.
Откроем оба
и сравним:
экспорт функции
сохранился,
а обёртка
под каждый формат
своя.
Верните из src/index.js строку ready и соберите два файла под именем ready-pack: модуль es и модуль cjs.
Найдите в dist файлы ready-pack.js и ready-pack.cjs и убедитесь, что в каждом есть экспорт функции со строкой ready.