Как настроить webpack - libraryTarget + splitChunks для импорта чанков в другой проект - PullRequest
0 голосов
/ 10 января 2020

У меня есть вопрос, похожий на Как настроить webpack - libraryTarget + splitChunks + Requarire в borwser . Я написал npm плагин и скомпилировал его через веб-пакет. Затем я установил его в проект Nuxt и добавил импорт к этому плагину npm в (например) index. vue. Файлы плагина sr c выглядят как

import 'fetch';

export class Tools...

et c. Если я не использую splitChunks, все работает нормально (import { Tools } from 'libs/dist/.../tools'), но с splitChunks у меня есть undefined / 1 / end l oop загрузка приложения Nuxt / пустая модель, et c.

output: {
    filename: env.target_build === 'prod' && env.add_name_min === 'true'  ?
        'js/web/[name].min.js' : 'js/web/[name].js',
    chunkFilename: env.target_build === 'prod' && env.add_name_min === 'true'  ?
        'js/web/[name].min.js' : 'js/web/[name].js',
    publicPath: 'dist/',
    libraryTarget: 'umd',
    // library: 'libs',
    // umdNamedDefine: true
},
// optimization: {
//     runtimeChunk: 'single',
//     splitChunks: {
//         chunks: 'all',
//         maxInitialRequests: Infinity,
//         minSize: 0,
//         cacheGroups: {
//             vendor: {
//                 test: /[\\/]node_modules[\\/]/,
//                 name(module) {
//                     let pathSplit = module.context.match(/[\\/]node_modules[\\/]([^\/]+)\/(?!node_modules\/)([^\/]+)\/?([^\/]+)?/);

//                     if (pathSplit === null) {
//                         return 'name';
//                     } else if (pathSplit[3] === undefined) {
//                         // npm package names are URL-safe, but some servers don't like @ symbols
//                         return `npm.${pathSplit[1].replace('@', '')}`;
//                     } else {
//                         return `${pathSplit[3].replace('@', '')}.${pathSplit[1].replace('@', '')}`;
//                     }
//                 },
//             }
//         },
//     },
// },

Без runtimeChunk я думал, что мне просто нужно импортировать (например) инструменты из 'libs / dist /.../ tools', и все фрагменты для инструментов будут загружены. То же самое для Tools2 et c. С runtimeChunk я подумал, что мне нужно импортировать из среды выполнения, как import { Tools } from 'libs/dist/.../runtime', но нет ... оба импорта не работают ?. Итак, можно импортировать разделенный файл из другого пакета веб-пакета?

Подобные вопросы, которые я нашел:
Dynami c Импорт модуля со своими собственными зависимостями чанка
Импорт / загрузка библиотеки с кусками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...