gpt4 book ai didi

webpack - 在 webpack 中,强制某些模块在启动时自动加载

转载 作者:行者123 更新时间:2023-12-04 16:05:43 24 4
gpt4 key购买 nike

在我的服务器端包中,我有一些包含服务器端 api 的模块,我想让这些模块尽快加载(并运行)(与入口点同时)。

我有一些限制:

  • 我不知道这些模块的名称(它们是在编译过程中生成的,它们只是从
    装载机,使用 this._module.meta.myApiModule = true )。
    这些模块在同构 Web 应用程序中的客户端和服务器之间部分共享。客户端知道服务器模块哈希,因为客户端和服务器端模块共享相同的哈希(感谢 webpack.HashedModuleIdsPlugin)。在某些情况下,客户端会调用服务端的 api,并且必须在调用之前加载保存 api 的模块。
  • 所有标记的模块必须在启动时调用(必需)。
    这些模块包含注册其 api 的代码(例如 mainFramowork.registerRpcApi(...) ),这就是为什么必须在启动时加载它们的原因。

  • 更多细节:

    我使用 vuejs,我的 .vue 文件由 webpack 处理。每个 vue 文件都会生成 webpack 模块(用于脚本部分、标记部分、样式以及可选的可自由使用的自定义 block )
    foo.vue (file)
    -> html (webpack module)
    -> script (webpack module)
    -> style (webpack module)
    -> customBlock (webpack module, rawRequest:"!!babel-loader!addmeta-loader?{"mark":"api"}!XXX/node_modules/vue-loader/lib/selector?type=customBlocks&index=1!./foo.vue")

    bar.vue
    -> html (webpack module)
    -> script (webpack module)
    -> style (webpack module)
    -> customBlock (webpack module, rawRequest:"!!babel-loader!addmeta-loader?{"mark":"api"}!XXX/node_modules/vue-loader/lib/selector?type=customBlocks&index=1!./bar.vue")

    现在,我的目标是调用所有这些“customBlock 模块”:
  • 启动时(如何??)
  • 在 block 加载时(可能在
    chunk??,这意味着将我所有的 customBlocks 模块移动到一个新的
    然后动态创建一个模块,它将调用我所有的
    customBlock 模块(哇))
  • 手工:require('please_call_all_custom_blocks_modules_thanks')
  • 使用加载器:require('please_call_all_custom_blocks_modules_thanks!')

  • 我不知道

    最佳答案

    我想你想要的是这样的

    // loader.js
    var moduleName = getSomeModuleNameInRuntime();
    require("bundle!./path/" + moduleName)(function(myModule) {
    // ...
    });

    看到这个问题 here

    关于webpack - 在 webpack 中,强制某些模块在启动时自动加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44501149/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com