从外部Webpack导入(运行时导入)

时间:2019-10-03 08:42:48

标签: javascript node.js typescript webpack

  

这只是我今天想的,我没有看到很多信息,所以我将分享这个奇怪案例以及我个人如何解决它们(如果有更好的方法,请发表评论,但这同时可能会对其他人有所帮助^^)

在webpack捆绑包中,您执行的每个import / require都由webpack使用其内部require函数进行管理。这意味着如果您位于webpack捆绑包中,则无法再使用原始的NodeJS全局require

  

另请参阅:Exporting from outside webpack bundle

1 个答案:

答案 0 :(得分:0)

webpack提供了一种解决方法:

名为__non_webpack_require__的变量,它是原始的require,因此,在您的代码中,您可以这样做:

const internalModule = require('internal/module');
// or import internalModule from 'internal/module'; in the ES6 way

const externalModule = __non_webpack_require__('external/module');

如果您使用的是TypeScript,则可以在global.d.ts文件中添加以下行,以避免语法错误:

declare const __non_webpack_require__: NodeRequireFunction;
  

事实1:实际上,在构建之后,您可以看到常用的require(Webpack的)如何重命名为__webpack_require__,以及__non_webpack_require__已保留为原始require

     

事实2::Webpack还使用原始的require从系统(未与代码捆绑在一起)中导入模块,例如neteventsfs