javascript - WebPack 按需动态加载包

标签 javascript webpack bundling-and-minification webpack-2

我们使用 webpack 1.14.0 来捆绑我们的应用程序。目前,我们正在寻找一种需要动态加载 bundle 的方法。

我们的要求是从包中动态加载 readme.md 和 example.md 文件。 我正在尝试使用 require.ensure,下面是我正在尝试的示例

//app.js entry point for webpack config
require("./login"); //sample login file just contains console log stmnt.

window.clickButton = function () {
    require.ensure(['./ensureTest'], function (require) {

       var a = require('./ensureTest');

    });

}
console.log("App Loaded"); 

//ensureTest.js   testing to load this module dynamically on demand
define([], function(){
    console.log("Loaded ensure runtime");
});

下面是我的 webpack 配置

module.exports = {
    entry: ["./app.js"],
    output: {
        filename: "bundle.js"
    },
    module:{
        loaders:[
            {
                test:/\.es6$/,
                exclude : "node_modules",
                loader:"babel-loader"
            }
        ]
    },
    resolve:{
        extensions :['', '.es6','.js']
    }
}

当我运行WebPack命令时,我可以看到创建的bundle.js和1.bundle.js文件。 问题是当我单击按钮时,只有第一次单击时才会看到 1.bundle.js 显示的“已加载确保运行时”消息

再次单击按钮,我看不到消息“已加载确保运行时”

我的总体动机是动态加载包及其包含的模块。

最佳答案

我很确定你只能加载一次。一旦你加载它,它就已经在那里了,所以console.log不会被再次调用。

关于javascript - WebPack 按需动态加载包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025645/

相关文章:

ruby-on-rails - 将 Bootstrap 4 与 Rails 6 Webpacker 一起使用时出错

javascript - 如何缩小我的网络应用程序?

.net - MVC4 风格捆绑给出 403

javascript - 使用 ES6 导入加载特定名称是否比导入命名空间更快?

javascript - 如何检查 JavaScript 对象是在当前窗口还是另一个窗口中创建的?

javascript - 使用 onClick 事件触发 CSS3 转换

php - 解析 CSS url 时出现 Webpack 错误

javascript - Gatsby 构建图像时 Node JS 崩溃

javascript - React Native Undefined 不是一个对象(正在评估'_react3.default.PropType.shape')

javascript - Webpack css-loader 生成错误的图像