目标:我正在尝试在nodejs和webpack中设置一个项目,以便 require函数可以以root身份使用项目目录,因此我可以在两个环境中使用相对于项目根的绝对路径(同构使用即React服务器+客户端呈现).
情况:在webpack中你可以设置config.resolve.root使其工作,但在nodejs中,最好不要覆盖/修改global.require.
提议1:我可以创建一个新的全局功能
global.p_require
Run Code Online (Sandbox Code Playgroud)
所以它在节点中工作; 但是,我无法找到一种方法让webpack将"p_require"解析为__webpack_require__而不更改webpack源代码.
提案2:我可以创建一个新的全局变量
global.ROOT_DIR = process.cwd()
Run Code Online (Sandbox Code Playgroud)
所以它在节点中工作
require(ROOT_DIR + <relative path to root>);
Run Code Online (Sandbox Code Playgroud)
但是,webpack会认为这是动态需求.有没有办法让webpack解析ROOT_DIR?我已经尝试过Define Plugin,但似乎在webpack解析require之后加载.
题
任何人都有解决方案或面临同样的问题?