我找到了两个工具来解决服务器端模块加载器的问题:webpack-isomorphic-tools和universal-webpack。有人可以向我解释这些事情的关键步骤吗?它如何捕获/提取import
ed / require
d模块?
答案 0 :(得分:3)
我是这3个模块的作者。
webpack-isomorphic-tools
在require()
的帮助下挂钩Node.js的require-hacker
函数,并拦截require()
次调用已配置extension
的所有素材资源返回Webpack编译的表单(取自webpack-assets.json
在Webpack构建期间生成的webpack-isomorphic-tools/plugin
。
universal-webpack
没有挂钩require()
函数 - 它只是将客户端Webpack配置转换为服务器端Webpack配置的帮助器。它不会在服务器端或其他东西上运行。它只是一个Webpack配置生成器 - 结果是Webpack有一个target: "node"
参数,它使得它在Node.js上运行的输出代码没有任何问题。
我在webpack-isomorphic-tools
之前写了universal-webpack
,因此universal-webpack
是推荐的工具。
然而,许多人仍然使用webpack-isomorphic-tools
(包括我),并发现它不那么复杂。