这只是我今天想的,我没有看到很多信息,所以我将分享这个奇怪案例以及我个人如何解决它们(如果有更好的方法,请发表评论,但这同时可能会对其他人有所帮助^^)
在webpack捆绑包中,您执行的每个import
/ require
都由webpack使用其内部require
函数进行管理。这意味着如果您位于webpack捆绑包中,则无法再使用原始的NodeJS全局require
。
答案 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
从系统(未与代码捆绑在一起)中导入模块,例如net
,events
,fs
等