Webpack - Как настроить простые сборки нескольких приложений - PullRequest
0 голосов
/ 24 ноября 2018

Usecase

Я настроил сервер узлов таким образом, чтобы, когда кто-либо переходит на app1.domain.com, он загружал статический сайт app1.

У меня есть несколько приложений.app1, app2 и app3.Каждая папка приложения имеет свои собственные index.html, index.js и index.scss.Они все простые приложения реагировать.Их структура каталогов выглядит следующим образом.

Исходный каталог

enter image description here


Я построил следующееКонфигурация webpack, которая компилирует / компилирует мое приложение реагирования в файл с именем bundle.js вместе с моим scss.Кроме того, я копирую HTML-файл.Он получает выходные данные в dist / public /

webpack.config.js

const path = require("path");
const WebpackShellPlugin = require("webpack-shell-plugin");
const nodeExternals = require("webpack-node-externals");
const CopyWebpackPlugin = require('copy-webpack-plugin');

module.exports = [
    {
       // Server config removed
    },
    {
        entry: {
            main: './src/public/app1/index.js'

        },
        output: {
            path: __dirname + '/dist/public/app1',
            publicPath: '/',
            filename: 'bundle.js'
        },
        module: {
            rules: [
                {
                    test: /(\.css|.scss)$/,
                    use: [{
                        loader: "style-loader" // creates style nodes from JS strings
                    }, {
                        loader: "css-loader" // translates CSS into CommonJS
                    }, {
                        loader: "sass-loader" // compiles Sass to CSS
                    }]
                },     
                {
                    test: /\.(jsx|js)?$/,
                    use: [{
                        loader: "babel-loader",
                        // options: {
                        //     cacheDirectory: true,
                        //     presets: ['react', 'es2015'] // Transpiles JSX and ES6
                        // }
                    }]
                }
            ],

        },
        "plugins": [
            new CopyWebpackPlugin([{
                from: 'src/public/app1/index.html',
                to: ''
            }]),
        ]

    }
];

Как я могу расширить эту конфигурацию, чтобы она автоматически делала этодля других папок, таких как app2 и app3.(сейчас я делаю это только для app1).

Вот пример текущего вывода, я ожидаю увидеть то же самое для app2 и app3.

Выход

enter image description here

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