我用包括node_modules的Webpack构建了一个包含所有所需资源的捆绑包,因为我将在另一个不存在package.json和node_module的地方运行这个捆绑包,这就是我构建包括node_modeles的捆绑包的原因。
在某个时刻,bundle需要一个外部js,该外部js以动态名称下载,如果我将bundle移动到最终位置并使用Node运行它,当它尝试require('dynamic_fullpath.js')
时,日志告诉Error: Cannot find module dynamic_fullpath.js
,文件(在本例中为dynamic_fullpath.js(存在于正确的路径中。
我认为问题是:Webpack将require-js方法更改为 require-Webpack方法知道如何解决需要的动态问题吗?
最后,问题是:Webpack将require-js方法更改为require-Webpack方法,并且在构建捆绑包时:dynamic_fullpath.js不存在,也不添加到捆绑包中,因此,为了避免在特定的需求上出现这种情况,我找到了这个解决方案,正如帖子所说:
";
在不使用eval的情况下实现这一目标的一种更简单的方法是:
const requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : require;
const foo = requireFunc(moduleName);
在捆绑输出中,这将成为
const requireFunc = true ? require : require;
const foo = requireFunc(moduleName);
">
在此处找到解决方案