在NodeJS中构建了一个带有Webpack和Babel的bundle后,找不到一个完整路径的外部js模块



我用包括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);

">


在此处找到解决方案

相关内容

最新更新