mirror of
				https://github.com/aleleba/create-react-ssr.git
				synced 2025-10-31 06:00:39 -06:00 
			
		
		
		
	PR-753737: Se agrega soporte para typescript.
This commit is contained in:
		| @@ -2,10 +2,14 @@ require('dotenv').config(); | ||||
|  | ||||
| require('ignore-styles'); | ||||
|  | ||||
| //require('webpack-node-externals')(); | ||||
|  | ||||
| require('@babel/register')({ | ||||
| 	'presets': [ | ||||
| 		'@babel/preset-env', | ||||
| 		'@babel/preset-react' | ||||
| 		'@babel/preset-react', | ||||
| 		"@babel/preset-typescript", | ||||
| 		// '@babel/preset-flow', | ||||
| 	] | ||||
| }); | ||||
|  | ||||
|   | ||||
| @@ -14,10 +14,10 @@ import React from 'react'; | ||||
| import { renderToString } from 'react-dom/server'; | ||||
| //Router | ||||
| import { StaticRouter } from 'react-router-dom/server'; | ||||
| import routes from '../routes'; | ||||
| //Redux | ||||
| import { createStore } from 'redux'; //, applyMiddleware | ||||
| import { Provider } from 'react-redux'; | ||||
| import reducer from '../frontend/reducers'; | ||||
| import setStore from '../frontend/setStore.js'; | ||||
| import initialState from '../frontend/reducers/initialState'; | ||||
| //Get Hashes | ||||
| import getHashManifest from './getHashManifest'; | ||||
| @@ -26,6 +26,8 @@ import App from '../frontend/components/App'; | ||||
|  | ||||
| const { env, port } = config; | ||||
|  | ||||
| const routesUrls = routes.map( route => route.path) | ||||
|  | ||||
| const app = express(); | ||||
|  | ||||
| if(env === 'development'){ | ||||
| @@ -88,20 +90,25 @@ const setResponse = (html, preloadedState, manifest) => { | ||||
|     `); | ||||
| }; | ||||
|  | ||||
| const renderApp = (req, res) => { | ||||
| 	const store = createStore(reducer, initialState); | ||||
| 	const preloadedState = store.getState(); | ||||
| 	const html = renderToString( | ||||
| 		<Provider store={store}> | ||||
| 			<StaticRouter location={req.url}> | ||||
| 				<App /> | ||||
| 			</StaticRouter> | ||||
| 		</Provider> | ||||
| 	); | ||||
| 	res.send(setResponse(html, preloadedState, req.hashManifest)); | ||||
| const renderApp = (req, res, next) => { | ||||
| 	if(routesUrls.includes(req.url)){ | ||||
| 		const store = setStore({ initialState }); | ||||
| 		const preloadedState = store.getState(); | ||||
| 		const html = renderToString( | ||||
| 			<Provider store={store}> | ||||
| 				<StaticRouter location={req.url}> | ||||
| 					<App /> | ||||
| 				</StaticRouter> | ||||
| 			</Provider> | ||||
| 		); | ||||
| 		res.send(setResponse(html, preloadedState, req.hashManifest)) | ||||
| 	} | ||||
| 	next() | ||||
| }; | ||||
|  | ||||
| app.get('*', renderApp); | ||||
| app | ||||
| 	.get('*', renderApp); | ||||
|  | ||||
|  | ||||
| app.listen(port, (err) => { | ||||
| 	if(err) console.error(err); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user