Webpack和Nodejs同构需要绝对path

目标 :我正在尝试在nodejswebpack设置一个项目,使得require函数可以使用项目目录作为根目录,所以我可以在两个环境中都要求相对于项目根的绝对path同构使用,即React server + client render )。

状态 :在webpack中,你可以设置config.resolve.root来使其工作,但是在nodejs中,最好不要覆盖/修改global.require。

build议1 :我可以发挥新的全球职能

global.p_require 

所以它在节点中工作; 然而,我不能find一种方法让webpackparsing“p_require”到__webpack_require__中,而无需更改webpack源代码。

build议2 :我可以创造一个新的全球variables

 global.ROOT_DIR = process.cwd() 

所以它在节点工作

 require(ROOT_DIR + <relative path to root>); 

然而,webpack会认识到这是dynamic的要求 。 有没有办法让webpackparsingROOT_DIR? 我已经尝试了定义插件 ,但似乎加载后的需求被webpackparsing。

任何人有解决scheme或面临同样的问题?

       

网上收集的解决方案 "Webpack和Nodejs同构需要绝对path"

我正在通过让webpack做更多来解决这个问题。 而不是“节点和webpack”,它是“webpack:客户端和服务器”。 我有webpack为客户端和服务器(后者在configuration中使用“节点”作为其目标属性)构build一个构build。 定制webpack使用的目录是很容易的,所以你让它工作并为节点创build一个构build。

在服务器上渲染时,只需要编译的服务器版本。 如果您需要将某些东西从服务器传递到webpack构build的应用程序,请将其连接到用于构build服务器的入口点 – webpack会将其构build为commonJs模块,因此您的入口点可以导出是服务器需要渲染时最方便的界面。