在研究服务端渲染,之前服务端代码都是用require来导入模块的。
但是搜了一些关于服务端渲染的文章。大多都是import导入的模块,如下这个:
但是Node服务端运行会报错,不支持这个import,这怎么解决?也用babel-loader?又找到了如下文章:
但是我在babel转换的过程中报了一大堆错误。比如:
Can't resolve 'tinyliquid'
Can't resolve 'fs'
求问这该怎么解决?
使用了babel-register可以正常启动了,但是koa-router会报错
这是我的入口文件
require("babel-register")({
'presets': ["es2015", 'react', 'stage-3'],
});
require('babel-polyfill');
require('./server.js');
这是server.js
let koa = require('koa');
let views = require('koa-views');
let statics = require('koa-static');
let router = require('koa-router')();
import React from 'react';
// import {renderToString} from 'react-dom/server';
// import App from './views/server/components/App.jsx';
let app = new koa();
app.use(views(__dirname + '/views/server', {map: {html: 'nunjucks'}}));
app.use(async (ctx, next) => {
console.log(ctx.request.url);
await next();
})
app.use(statics('.'));
router.get('/', async function (ctx, next) {
// await ctx.render('index', {
// root: renderToString(<App/>)
// });
await ctx.render('index.html');
});
app.use(router.routes()).use(router.allowedMethods());
app.listen(8080, () => {
console.log('服务启动,localhost:8080')
});
报了如下错误:
增加了plugins: ['add-module-exports']这个插件OK了