使用节点需要Electron和Webpack

时间:2016-05-20 06:54:59

标签: node.js webpack electron

我正在使用Electron构建一个项目,并使用Webpack构建(Angular 2)渲染过程应用程序。

在这个应用程序中,我需要在运行时动态require一些在构建时不存在的文件。代码看起来像这样:

require("fs").readdirSync(this.path).forEach(file => {
  let myModule = require(path.join(this.path, file));
  // do stuff with myModule
});

问题是Webpack编译器会将require()调用转换为它自己的__webpack_require__(),并且在运行时,它会在自己的内部模块注册表中查找动态“myModule”文件,当然不会找到它。

我尝试使用“externals”配置选项,但由于这是一个动态需求,它似乎不会被“外部”处理。

其他人是否成功解决了这个问题?

1 个答案:

答案 0 :(得分:2)

根据@jantimon对我的问题的评论中的建议,解决方案是使用global.require

require("fs").readdirSync(this.path).forEach(file => {
  let myModule = global.require(path.join(this.path, file));
  // do stuff with myModule
});