【发布时间】:2015-10-21 01:46:27
【问题描述】:
GOAL:我正在尝试在 nodejs 和 webpack 中设置一个项目,以便 require 函数可以使用项目目录作为根目录,所以我可以要求在两种环境中都使用相对于项目根目录的 绝对路径(同构使用,即 React 服务器+客户端渲染)。
情况:在 webpack 中,您可以设置 config.resolve.root 以使其工作,但在 nodejs 中,最好不要覆盖/修改 global.require。
命题1:我可以做一个新的全局函数
global.p_require
所以它在节点中工作;但是,我无法在不更改 webpack 源代码的情况下让 webpack 将“p_require”解析为 __webpack_require__。
PROPOSITION 2:我可以创建一个新的全局变量
global.ROOT_DIR = process.cwd()
所以它在节点中工作
require(ROOT_DIR + <relative path to root>);
然而,webpack 会将此识别为 动态要求。有没有办法让 webpack 解析 ROOT_DIR?我已经尝试过 Define Plugin,但它似乎在 webpack 解析 require 后加载。
问题
任何人有解决方案或面临同样的问题?
【问题讨论】:
-
在运行 webpack 和服务器之前,你有没有试过设置
NODE_PATH?NODE_PATH=<root_of-Project> webpack,NODE_PATH=<root_of-Project> node server.js -
我试过这个。但问题是这里发生了什么gist.github.com/branneman/8048520(并不总是最好的黑客)
-
这里也有同样的问题..你找到解决方案了吗?
标签: javascript node.js reactjs webpack isomorphic-javascript