【问题标题】:Webpack: single scope for multiple js files?Webpack:多个js文件的单一范围?
【发布时间】:2016-08-09 22:40:26
【问题描述】:

想象两个 javascript 文件和一个入口点文件:

app.js:

require(a.js);
require(b.js);

a.js:

var a = 4;

b.js:

var b = a+1;
console.debug(b);

不幸的是,这不起作用,因为文件 a 的上下文在文件 b 中丢失了,这意味着 b.js 不知道任何名为 a 的变量

如何使用 Webpack 解决这个问题 - 我只想得到与

相同的结果
<script src="a.js"></script>
<script src="b.js"></script>

具有通过 Webpack 捆绑的附加效果。

【问题讨论】:

    标签: javascript node.js webpack


    【解决方案1】:

    使用 ES2015 模块(可能不适合你,你可以改用require

    a.js:

    export var a = 4;
    

    b.js

    import { a } from "./b.js";
    var b = a+1;
    console.debug(b);
    

    Webpack 是一个模块构建/捆绑系统,它通过从 javascript 文件创建 UMD(通用模块)来工作。您必须导入/导出这些模块才能使它们在范围内。

    【讨论】:

    • 问题是我不能全部导出大量的变量依赖项。有没有不同的方法来连接它们并按顺序缩小(例如 gulp)
    • @nauti 不幸的是,我发现很难找到一种方法来做你想做的事。最大程度地减少导出数量可以做的就是将多个变量聚合到对象中,然后导出这些对象。否则,我会说 Webpack 不适合你。
    • 我的印象是,在编写更大的应用程序时,将巨大的 javascript 文件拆分为逻辑子文件(组件)是一种很好的做法——如果 Webpack 在捆绑之前没有简单地连接文件的方法,我在将来使用它之前确实必须三思而后行。真是令人失望。
    • 你现在如何处理这个问题?发现自己处于与越来越大的 js 文件相似的位置。我经常使用 Webpack,但经常使用入门主题/反应,但不确定如何使用 vanilla js 来管理它。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2019-01-21
    • 2019-05-23
    • 1970-01-01
    • 2017-06-18
    相关资源
    最近更新 更多