Webpack: включить поставщика только в один модуль - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь перенести один из моих проектов из браузера в веб-пакет. Это проект AngularJS@1.7, и у меня есть несколько пакетов: core с AngularJS и его импортом зависимостей и другими специальными модулями с отложенной загрузкой с его конкретными зависимостями. Поэтому у меня есть несколько точек входа, но я загружаю только скрипт core .js в index.html. Другие модули разрешаются при маршрутизации моим преобразователем.

Один из модулей с отложенной загрузкой импортирует AngularJS, что приводит к дублированию кода и WARNING: Tried to load AngularJS more than once. Я хочу, чтобы Webpack проверил, были ли модули импортированы в core , и загрузил их из него.

1 Ответ

0 голосов
/ 17 января 2019

Я заставил его работать, но мне нужно импортировать один дополнительный файл common-vendors.js в index.html.

Моя конфигурация:

export default {
    context: path.resolve(__dirname, './src/app'),
//...
    entry: {
        'core': './core/core.module',
        'back-office': './back-office/back-office.module',
        'front-office-1': './front-office-2/front-office-2.module',
        'front-office-2': './front-office-3/front-office-3.module'
    },

    output: {
        filename: '[name].js',
        path: path.resolve(__dirname, 'www')
    },

    mode: config.env,

    optimization: {
        splitChunks: {
            cacheGroups: {
                'common-vendors': {
                    test: /[\\/]node_modules[\\/]/,
                    name: 'common-vendors',
                    chunks: 'initial',
                    minChunks: 2
                }
            }
        },
        runtimeChunk: {name: 'core'},
        minimizer: [
            new UglifyJsPlugin({
                uglifyOptions: {mangle: false}
            })
        ]
    },

    plugins: [
        new CompressionPlugin()
    ]
}

Если вы знаете лучшее решение, не стесняйтесь комментировать.

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