我正在尝试通过Webpack动态模块为我的ES6项目,但Webpack给出了奇怪的行为。
我array
来自webpack.config.js
。它来自目录和子目录列表。所以我在这个数组中有我需要的所有路径。
当我在module-init.js
文件中循环播放时,var path
包含:/path/to/user-profile-summary
当我这样做时:
models[name] = require(path);
错误是:
Error: Cannot find module "."
at webpackMissingModule (module-init.js?5fa7:156)
at eval (module-init.js?5fa7:156)
当我用文字字符串换行时(我在Webpack Github 问题上看到了这一点):
models[name] = require(`${path}`);
错误是:
Error: Cannot find module '/path/to/user-profile-summary'.
at webpackContextResolve (core ^.*$?57f1:13)
at webpackContext (core ^.*$?57f1:8)
at eval (module-init.js?5fa7:163)
同一文件需要手动操作,才能完美运行
models[name] = require('/path/to/user-profile-summary');
我不能使用require.context(完全正常),因为Jest不想使用它并且无法进行测试。
为什么我这样做?我编写了一个HTML ES6模块加载器,当DOM中的特定HTML元素(与data-module =“foobar”相关)时需要特定的模块。这是一个仅与目录一起使用的旧版本https://github.com/romuleald/nu6tils/blob/master/src/module.js。当你有一个大型项目时,它就变成了怪物。
自动要求背后的想法是避免维护仅为此的索引。
有人知道解决方法吗?