Объединение библиотек в файл vendor
теперь считается анти-шаблоном, поскольку вы пренебрегаете преимуществами three-shaking
. Это также будет хуже caching
, поскольку каждый раз, когда какая-либо библиотека изменяется, кеш всего поставщика будет недействителен, и, наконец, вы не получите такой большой выгоды от http2
мультиплексирования .
Если вы все еще хотите сделать это, чтобы дать им надежные имена (и избежать конфликтов имен), намного проще сделать это вручную:
// vendor.js
import * as lib1 from 'lib1';
import * as lib2 from 'lib2';
export {lib1, lib2}
Предыдущий модуль, когда используется как запись точка, приведет к экспорту всех экспортов из обеих библиотек в соответствующие пространства имен, а свертка будет правильно обрабатывать внутренние зависимости между библиотеками.
Изменить: если вы можете связать библиотеки вместе с проектом, а не в другом процессе сделать это можно так:
// rollup.config.js
const libs = ['lib1', 'lib2'];
{
input: 'index.js',
manualChunks: {
vendor: libs.map((lib) => require.resolve(lib))
},
// ...
}