Дублирование модулей с помощью пакетов веб-пакетов - PullRequest
0 голосов
/ 08 апреля 2019

Как лечить дублирование модулей в пакетах с помощью веб-пакета V4?

Если «модуль A» имеет зависимость «модуль C» и генерирует пакет «index.js». Если «модуль B» имеет зависимость «модуль C» (та же версия) и генерирует пакет «index.js».

Если «модуль D» имеет зависимость как с «модулем А» комплекта, так и с «модулем В» комплекта: при проверке сгенерированного комплекта я вижу, что код «модуля С» продублирован.

Что такое решение для устранения дублирующегося кода в разных пакетах?

РЕДАКТИРОВАТЬ: Мой конфиг веб-пакета:

var path = require('path');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;


var webpackConfigManager = function(){

    let outDir = path.join(process.cwd(), "dist");
    let inPath = path.join(process.cwd(), 'src/index.js')

    let config = {
        mode: 'production', 
        devtool:false,
        plugins: [
            new BundleAnalyzerPlugin()
          ],
        entry: [inPath],
        output: {
            path: outDir,
            filename: 'index.js',
            libraryTarget: "umd" 
        },
        resolve: {
            extensions: ['.js', '.jsx', '.css', '.scss'],
            symlinks:false
        },
        module: {
            rules: [
                {
                    enforce: "pre",
                    test: /\.jsx?$/,
                    exclude: /node_modules|bower_components/,
                    loader: "eslint-loader",
                },
                {
                    test: /\.s?css$/,
                    use: ['style-loader', {
                        loader: 'css-loader',
                        options: {
                            modules: false,
                            importLoaders: 2,
                            sourceMap: true,
                            localIdentName: "[path][name]__[local]--[hash:base64:5]"
                        }
                    },
                        {
                            loader: "sass-loader",
                            options: {
                                sourceMap: true,
                                includePaths: ['./']
                            }
                        }
                    ]
                },

                {
                    test: /\.jsx?$/,
                    exclude: /node_modules|bower_components/,
                    use: {
                      loader: "babel-loader"
                    }
                },
            ]
        }
    };

    return config;
}

module.exports = env => {
return webpackConfigManager();
};

пример импорта:

import MyComponent from "@myscope/myReactComponent";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...