V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
beginor
V2EX  ›  前端开发

各位 webpack 大佬, 请问有没有办法手工加载 webpack 打包生成的 lazy chunk ?

  •  
  •   beginor ·
    beginor · 2021-04-25 12:48:36 +08:00 · 1192 次点击
    这是一个创建于 1314 天前的主题,其中的信息可能已经有所发展或是发生改变。

    webpack 将项目打包成三个文件, 分别是:

    • runtime.js
    • main.js
    • lazy-chunk.js

    其中主要功能都在按需加载的 lazy-chunk.js 里面。

    index.html 文件中有直接引入了 runtime.jsmain.js

    <body>
      <button type="button" id="loadApp">Load App</button>
      <button type="button" id="setParam">Set Param</button>
      <button type="button" id="destoryApp">Destroy App</button>
      <div id="app-container"></div>
      <script src="runtime.js" defer></script>
      <script src="main.js" defer></script>
    </body>
    

    点击 button#loadApp 会通过 main.js 来加载 lazy-chunk.js 并在 div#app-container 进行初始化。

    想问的问题是,有没有办法跳过 main.js , 直接加载 lazy-chunk.js 进行初始化?

    4 条回复    2021-04-25 16:13:56 +08:00
    SoloCompany
        1
    SoloCompany  
       2021-04-25 13:36:07 +08:00
    不知道你的目的是什么, 如果是希望减少一个请求的话, 直接把 main.js inline 到 html 里面就好了 (但既然如此为和又要生成 runtime.js 而不是和 main.js 放一起)

    如果目的是自动执行的话, 你不可以直接改 main.js 逻辑或者 src=main.js onload=loadApp.click() 吗?
    beginor
        2
    beginor  
    OP
       2021-04-25 14:22:24 +08:00
    @SoloCompany 是需要把 lazy-chunk.js 移植到另外的运行环境中, 这个环境不受自己控制, 同时这个项目的编译过程也不受自己控制
    Mutoo
        3
    Mutoo  
       2021-04-25 14:35:56 +08:00 via iPhone
    @beginor webpack 5 的 module federation 能够完成你的需求。最近在一个项目中使用了,非常不错。
    beginor
        4
    beginor  
    OP
       2021-04-25 16:13:56 +08:00
    @Mutoo 谢谢, 我去看一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:33 · PVG 03:33 · LAX 11:33 · JFK 14:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.