javascript - 如何将 webpack 模块导出到全局变量中

标签 javascript webpack gulp

我试图将所有依赖项捆绑到一个文件中,并在其他 js 文件中使用它。这是捆绑依赖项的代码。

return gulp.src('./dependencies.js')
    .pipe(webpack({
        output: {
            library: 'home'
        }
    }))

dependency.js 只是一个包含一堆需求的文件:例如

require('angular');
require('toastr');
require('...'); 

我尝试过使用output.library,但无法访问执行window.toastrwindow.home.toastr的模块。 window.home 只是一个空对象{}

我如何能够捆绑所有依赖项并在其他 javascript 文件中将它们作为全局变量访问?

最佳答案

要指定模块的全局导出,您可以使用 ProvidePlugin
有了它,您可以将模块导出为全局变量 my:

webpack({
    ...
    plugins: [
        new webpack.ProvidePlugin({ my: './relative/path/to/your/bundle.js' })
    ]
    ...
})

或者您可以尝试使用您的 home 库名称而不是路径(可能也可以)

但我宁愿推荐使用 DllPlugin将一组模块捆绑到一个文件中,然后使用原始模块名称作为引用。 Webpack 将分析您的引用并决定何时可以使用现有包而不是执行新 block 。这样您就可以轻松更改配置中的 bundle 内容,而无需更改代码。

关于javascript - 如何将 webpack 模块导出到全局变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46529041/

相关文章:

javascript - i/info icon : click it to reveal text/can this be done with css, 怎么办?

javascript - 在 C# 中上传时在图像上添加日期

node.js - Glob 忽略模式似乎不适用于 gulp

node.js - child_process.exec/spawn 使用 npm install 命令触发回调/关闭(通过 Gulp/Shipit)

javascript - Gulp + babelify + browserify 问题

javascript - 为什么使用 numeric.toString() 作为数组键会导致我的脚本卡住

javascript - 悬停时的 Bootstrap 子菜单

javascript - 如何使用webpack将http请求转发到https?

javascript - webpack如何压缩HTML代码中的链接CSS文件?

javascript - webpack block 中未定义的全局窗口变量