从外部Webpack导入(运行时导入)
在webpack包中,您所做的每个这只是我今天想的,我没有看到很多信息,所以我将分享此[[weird案例以及我个人如何解决这些问题(如果有更好的方法,请发表评论,但与此同时这可能会对其他人有所帮助^^)
import
/ require
都由webpack使用其内部的require
功能进行管理。这意味着如果您位于webpack捆绑包内,则不能再使用原始的NodeJS全局require
。另请参见:Exporting from outside webpack bundle回答如下: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
等。>
从外部Webpack导入(运行时导入)
在webpack包中,您所做的每个这只是我今天想的,我没有看到很多信息,所以我将分享此[[weird案例以及我个人如何解决这些问题(如果有更好的方法,请发表评论,但与此同时这可能会对其他人有所帮助^^)
import
/ require
都由webpack使用其内部的require
功能进行管理。这意味着如果您位于webpack捆绑包内,则不能再使用原始的NodeJS全局require
。另请参见:Exporting from outside webpack bundle回答如下: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
等。>