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个选项:
- 用webpack编译客户端代码。 如果客户端的入口点与服务器的目录是相同的,那么它应该和你现在的代码一起工作。 这对我来说很自然。
- 使用相对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
- 同构应用程序中的用户configuration文件
- 从React(同构应用程序)进行API调用时出现“Access-Control-Allow-Origin”问题
- react-router-redux:将路由参数映射到状态
- (React)与webpack同构的webapp的服务器部分,包括CSS的样式加载器
- 服务器渲染react-router v4 passthrough如果404
- 在使用React路由器时得到这个错误TypeError:type.toUpperCase不是函数
- React – 服务器端组件呈现
- React服务器端渲染,如何导入一个React组件?
- 使用Webpackcaching索引源代码中的值,使用React.js