【问题标题】:When does the Webpack bundle occur?webpack 捆绑包什么时候出现?
【发布时间】:2022-01-10 17:47:42
【问题描述】:

我目前正在学习 Es6 模块,我花了很长时间才最终理解并精通使用一个脚本的闭包、IIFE 和范围,以至于我几乎不高兴地发现 ES6 模块带来了一种不同的、更易于管理的方式将模块化代码组织成各种不同的脚本,然后让像 Webpack 这样的打包工具将它们全部打包回一个(或几个)脚本中。

  1. 当我输入 script type = ‘module’ 并尝试在我的本地文件系统上运行模块时,我得到了正常的跨源错误,这与我运行普通脚本时只是简单地指定一个 src 不同!

无论我在哪里寻找解决方案都是使用本地主机来解决这个问题,我已经完成了!但是 Webpack 是在什么时候进行捆绑的呢?是我在命令行中运行还是加载到浏览器中的时候?

  1. 如果在我的项目中通过 npm 安装 webpack 并设置配置,这是否意味着我不必使用本地主机,因为我在运行时的分发代码现在位于一个脚本文件中,因此不必导入脚本不在同一个网址上?我知道它只在我的本地文件系统上,但由于跨源策略,我无法在使用 es6 模块时请求同一文件夹中的脚本,因为我可以在不使用模块的情况下仅指定脚本 src。

【问题讨论】:

    标签: javascript webpack cors localhost es6-modules


    【解决方案1】:

    每次我从命令行运行 Webpack 时,它都会从入口点(在我的配置中指定)获取的最新代码捆绑在一起。这意味着我可以在我的入口文件上使用 ES6 模块语法,而不必使用实时服务器,因为我从不打算将此 js 入口文件加载到浏览器中,它只是通过导入我需要的东西来成为所有其他脚本导出的控制器从他们。然后这个脚本将成为 Webpacks 捆绑的目标(入口点),这意味着加载到浏览器中的唯一脚本是捆绑的脚本,它没有其他导入。这避免了在测试 ES6 模块时运行实时服务器的需要!!如果不使用 Webpack,我将不得不运行服务器,因为我的主脚本将导入其他脚本,除非它们具有相同的 url(它们甚至在我的文件系统中还没有),否则我将收到跨源错误。只要我运行我的本地服务器 127.0.0.1 ,它就会工作。我更喜欢使用 Webpack 进行测试。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多