在我的服务器端捆绑包中,我有一些包含服务器端api的模块,我想尽快加载(并运行)这些模块(与入口点同时).
我有一些限制:
我不知道这些模块的名称(它们是在编译期间生成的,它们只是从加载器"标记",使用this._module.meta.myApiModule = true).
这些模块在同构Web应用程序中的客户端和服务器之间部分共享.客户端知道服务器模块哈希,因为客户端和服务器端模块共享相同的哈希值(感谢webpack.HashedModuleIdsPlugin).在某些情况下,客户端对服务器进行api调用,并且必须在调用之前加载保存api的模块.
必须在启动时调用(必需)所有标记的模块.
这些模块包含注册其api的代码(例如mainFramowork.registerRpcApi(...)),这就是它们必须在启动时加载的原因.
我使用vuejs,我的.vue文件由webpack处理.每个vue文件生成webpack模块(用于脚本部分,标记部分,样式和可以自由使用的customBlocks)
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")
Run Code Online (Sandbox Code Playgroud)
现在,我的目标是调用所有这些"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) {
// ...
});
Run Code Online (Sandbox Code Playgroud)
在这里看到这个问题
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |