Webpack -动态需求和路径

Webpack - dynamic require and paths

本文关键字:求和 路径 需求 动态 Webpack      更新时间:2023-09-26

我的webpack。配置文件如下所示

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,而不是我告诉webpack放置它的构建文件夹。

我如何纠正这个?

你可能需要设置公共路径-基本上,你告诉webpack它将在你的web服务器上找到构建文件,这对你来说似乎是构建文件夹。

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