Webpack-dev-server和isomorphic react-node应用程序

我设法正确使用webpack开发服务器和一个节点服务器(express),使用webpackconfiguration中的插件部分。

这一切工作正常,但现在我试图去同构,并在快速应用程序内使用客户端组件。

到目前为止唯一的问题,我遇到的是,没有webpack“parsing”我的服务器端代码,我得到的情况下,我需要的组件,但path没有解决

IE

在组件内部

'use strict'; import React from 'react'; import { RouteHandler, Link } from 'react-router'; import Header from 'components/header/main'; // <-- This line causes the error because webpack is not working when parsing this JSX server-side export default React.createClass({ displayName: 'App', render() { return ( // ... More code 

我应该以另一种方式configurationwebpack,还是必须将所有导入更改为有效的服务器端?

代码是这里万一你想看到实际的状态https://github.com/vshjxyz/es6-react-flux-node-quickstart

我看到2个选项:

  1. 用webpack编译客户端代码。 如果客户端的入口点与服务器的目录是相同的,那么它应该和你现在的代码一起工作。 这对我来说很自然。
  2. 使用相对path即import Header from './components/header/main'

为了能够以require require('components/Header.js');等方式来请求组件, 并避免使用长相对path,如require('../../../../../../Header.js'); 您可以在任何require()调用之前将此代码添加到您的节点应用程序中:

 process.env.NODE_PATH = __dirname; require('module').Module._initPaths(); 

然而,由于这依赖于一个私有的Node.js核心方法,这也是一个黑客,可能会停止对前一个或下一个版本的节点工作。

其他可能的解决scheme可以在https://gist.github.com/branneman/8048520上find