#vuejs3 #rollup #lib #vite
Вопрос:
Когда я пытаюсь создать библиотеку в vue3, я хочу установить несколько выходных файлов. Код, подобный этому:
rollupOptions {
output: [
{
file: 'bundle.js',
format: 'cjs'
},
{
file: 'bundle.min.js',
format: 'iife',
name: 'version',
}
]
}
Тогда я получу сообщение об ошибке : «Вы должны установить либо «output.file» для однофайловой сборки, либо «output.dir» при создании нескольких блоков».
Итак, как я должен сделать, чтобы это сработало?
vite: 2.3.7
Ответ №1:
👉 Вам не хватает input
конфигурации rollupOptions
.
Следующая конфигурация создаст a my-app.js
в каталоге myoutput
(возможно, вам потребуется настроить путь к файлу в соответствии с вашими настройками). :
rollupOptions: {
input: {
app: 'bundle.js',
},
output: {
entryFileNames: 'my-[name].js',
dir: './myoutput'
}
}
💡 Чтобы лучше понять этот ответ, пожалуйста, прочитайте следующее предложение :
Если вы предоставите массив точек входа или имена объектов, сопоставляющие точки входа, они будут объединены в отдельные блоки вывода.
И если этот output.file
параметр не используется, сгенерированные имена блоков будут следовать за этим output.entryFileNames
параметром. При использовании формы объекта [name]
часть имени файла будет именем файла, в то object property
время как для формы массива это будет имя файла точки входа.
Обратите внимание, что при использовании формы объекта можно поместить точки входа в разные подпапки, добавив a /
к имени.
Если мы будем следовать документу, мы сможем получить более точные сведения, и мы знаем, что :
output.dir
Type: string
Set in build.rollupOptions
Предназначен для: каталога, в котором размещаются все сгенерированные фрагменты, и эта опция требуется, если сгенерировано более одного фрагмента. В противном случае вместо этого можно использовать опцию файл.
output.file
Type: string
Файл для записи. Может использоваться только в том случае, если сгенерировано не более одного фрагмента.
Ответ №2:
Я думаю, ты ищешь https://vitejs.dev/guide/build.html#library-mode
И увидишь https://vitejs.dev/config/#build-lib чтобы настроить ваши потребности.