Webpack - 动态需求和路径

时间:2015-08-07 18:10:29

标签: javascript webpack

我的webpack.config文件看起来像这样

var path = require('path');
var webpack = require('webpack');

module.exports = {
    entry: {
        app: './app'
    },
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: '[name]-bundle.js'
    }
};

我有一些看起来像这样的动态要求

function loadModule(modName, cb, onErr){
    if (modName == 'contacts') require(['../modules/contacts/contacts', 'html!../modules/contacts/contacts.htm'], cb);
    else if (modName == 'tasks') require(['../modules/tasks/tasks', 'html!../modules/tasks/tasks.htm'], cb);
    else onErr();
}

哪项工作很棒。我看到1.1-bundle.js2.2-bundle.js添加到我的构建文件夹

问题是,当触发这些动态需求时,我在网络选项卡中看到404,因为webpack正在尝试从我的项目的根目录加载1-1.bundle.js,而不是build文件夹我告诉webpack把它放进去。

我该如何纠正?

1 个答案:

答案 0 :(得分:3)

您可能需要设置public path - 基本上,您告诉webpack在您的网络服务器上它将找到构建的文件,这对于您来说似乎是构建文件夹。

{
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: '[name]-bundle.js',
        publicPath: '/build/',
    },
}