webpack基于DefinePlugin将单个入口点编译为多个输出

时间:2017-11-28 23:33:39

标签: javascript webpack babeljs

我目前有webpack设置,可以使用babel-loader将单个入口点编译到单个输出包中。像

这样的东西

entry.js

import { A } from "a.js"
import { B } from "b.js"
...
if (TEST) {
    console.log("this is a test");
}

webpack.config.js

module.exports = {
    entry: {
        entry: "entry.js"
    },
    output: {
        filename: "[name].bundle.js",
        path: __dirname + "/output"
    },
    module: {
        rules: [
        {
            test: /\.js$/
            use: {
                loader: "babel-loader"
            }
        }]
    },
    plugins: [
        new webpack.DefinePlugin({
            TEST: JSON.stringify(true)
        })
    ]
}

目前一切正常。我想要的是能够创建entry.bundle.js的两个版本。实际上TEST为真的版本及其为假的版本:entry.bundle.jsentry.test.bundle.js

为实现这一目标,我需要做些什么改变?理想情况下,我不希望有多个webpack配置文件

1 个答案:

答案 0 :(得分:1)

如果你在这个文件中有布尔值,为什么不只是/ else文件名并将相同的布尔值传递给插件?

$charge=\Stripe\Charge::create(array( 
    'customer' => $customer->id, 
    'amount' => ($_POST['amount']*100),
    'currency' => 'usd' 
    )); 

我确实理解你想做什么,但我不知道通过任何webpack特定技术做到这一点的光滑方式。