【发布时间】:2019-11-21 04:17:28
【问题描述】:
在客户项目中有一种插件系统。
它是这样工作的:
JS 文件位于某个目录下。假设/plugins。
这些插件导出具有共同签名的函数。
现在我将其余代码与 webpack 捆绑在一起。我想通过require(someVar)动态加载这些模块。
由于我在构建时不知道插件文件,因此无法将它们与 webpack 捆绑。
我尝试创建一些外部对象,但没有成功:
externals: [
(_context, request, callback) =>
/^\/plugins\/.*$/.test(request)
? callback(null, `commonjs ${request}`)
: callback(),
],
在运行时它会抛出这样的错误:
Error: Cannot find module '/plugins/file.js'
at webpackEmptyContext (filex.js:line:col)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at addChunk (_stream_readable.js:263:12)
at readableAddChunk (_stream_readable.js:250:11)
at Socket.Readable.push (_stream_readable.js:208:10)
at Pipe.onread (net.js:594:20)
我怎样才能不捆绑这些文件并在运行时从文件系统中要求它们?这甚至可以通过 webpack 实现吗?
【问题讨论】:
标签: webpack