【发布时间】:2021-09-20 12:50:26
【问题描述】:
环境: webpack 5.44 + vue.js 3.0 + node 12.21
我试图在编译时生成一个模块,以避免在运行时进行昂贵的计算(以及 10Mb 的依赖项,除非在所述计算期间,否则永远不会使用)。基本上在编译时运行:
import * as BigModule from "big-module";
function extract_info(module) { ... }
export default extract_info(BigModule);
将在运行时导入为:
export default [ /* static info */ ];
我尝试使用 val-loader(最新 4.0),这似乎是专为这个用例设计的。
问题: big-module 是 ESM,但 val-loader 显然只支持 CJS。所以我既不能import(“不能在模块外使用导入语句”错误)也不能require(“意外令牌'导出'”错误)。
有什么方法可以让val-loader 以某种方式加载 ESM 模块吗? 请注意,我并不热衷于使用 val-loader,任何其他实现相同目标的技术同样受欢迎.
【问题讨论】:
标签: node.js vue.js webpack es6-modules commonjs