提交 5947716f 编写于 作者: T Tim Neutkens 提交者: Guillermo Rauch

Implement preact/inferno SSR (#1346)

* Use module-alias to alias preact server side

* Use module-alias to alias inferno server side

* Remove unneeded routes example
上级 bcd582a1
module.exports = {
webpack: function (config) {
webpack: function (config, { dev }) {
// For the development version, we'll use React.
// Because, it support react hot loading and so on.
if (dev) {
return config
}
config.resolve.alias = {
'react': 'inferno-compat',
'react-dom': 'inferno-compat'
......
......@@ -2,13 +2,15 @@
"name": "using-inferno",
"version": "1.0.0",
"scripts": {
"dev": "next",
"dev": "node server.js",
"build": "next build",
"start": "next start"
"start": "NODE_ENV=production node server.js"
},
"dependencies": {
"inferno": "^1.0.7",
"inferno-compat": "^1.0.7",
"inferno-server": "^1.3.0-rc.9",
"module-alias": "^2.0.0",
"next": "^2.0.0-beta",
"react": "^15.4.2",
"react-dom": "^15.4.2"
......
const dev = process.env.NODE_ENV !== 'production'
const moduleAlias = require('module-alias')
// For the development version, we'll use React.
// Because, it support react hot loading and so on.
if (!dev) {
moduleAlias.addAlias('react', 'inferno-compat')
moduleAlias.addAlias('react-dom/server', 'inferno-server')
moduleAlias.addAlias('react-dom', 'inferno-compat')
}
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
createServer((req, res) => {
const parsedUrl = parse(req.url, true)
handle(req, res, parsedUrl)
})
.listen(3000, (err) => {
if (err) throw err
console.log('> Ready on http://localhost:3000')
})
})
module.exports = {
webpack: function (config) {
webpack: function (config, { dev }) {
// For the development version, we'll use React.
// Because, it support react hot loading and so on.
if (dev) {
return config
}
config.resolve.alias = {
'react': 'preact-compat/dist/preact-compat',
'react-dom': 'preact-compat/dist/preact-compat'
}
// Disable uglify. This has been fixed in https://github.com/developit/preact-compat/issues/155.
// Can be removed once there is a new preact-compat release.
config.plugins = config.plugins.filter((plugin) => {
if (plugin.constructor.name === 'UglifyJsPlugin') {
return false
} else {
return true
}
})
return config
}
}
......@@ -2,11 +2,12 @@
"name": "hello-world",
"version": "1.0.0",
"scripts": {
"dev": "next",
"dev": "node server.js",
"build": "next build",
"start": "next start"
"start": "NODE_ENV=production node server.js"
},
"dependencies": {
"module-alias": "^2.0.0",
"next": "^2.0.0-beta",
"preact": "^7.1.0",
"preact-compat": "^3.9.4",
......
const dev = process.env.NODE_ENV !== 'production'
const moduleAlias = require('module-alias')
// For the development version, we'll use React.
// Because, it support react hot loading and so on.
if (dev) {
moduleAlias.addAlias('react', 'preact-compat')
moduleAlias.addAlias('react-dom', 'preact-compat')
}
const { createServer } = require('http')
const { parse } = require('url')
const next = require('next')
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
createServer((req, res) => {
const parsedUrl = parse(req.url, true)
handle(req, res, parsedUrl)
})
.listen(3000, (err) => {
if (err) throw err
console.log('> Ready on http://localhost:3000')
})
})
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册