mirror of
https://github.com/aelve/guide.git
synced 2024-12-24 13:26:08 +03:00
Extract express config #167
This commit is contained in:
parent
b836a16b05
commit
10e31a82ea
38
front-ps/server.js
Normal file
38
front-ps/server.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
var path = require('path');
|
||||||
|
const spawn = require('child_process').spawn
|
||||||
|
var webpack = require('webpack');
|
||||||
|
var express = require('express');
|
||||||
|
var config = require('./webpack.config.client');
|
||||||
|
|
||||||
|
const port = 8080;
|
||||||
|
const compiler = webpack(require('./webpack.config.server.js'))
|
||||||
|
const client = webpack(config);
|
||||||
|
let server = null;
|
||||||
|
const app = require('express')();
|
||||||
|
app.use(function(req, res, next) {
|
||||||
|
res.header("Access-Control-Allow-Origin", "*");
|
||||||
|
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
||||||
|
next();
|
||||||
|
});
|
||||||
|
app.use(require('webpack-dev-middleware')(client, {
|
||||||
|
noInfo: true,
|
||||||
|
publicPath: config.output.publicPath
|
||||||
|
}));
|
||||||
|
app.use(require('webpack-hot-middleware')(client));
|
||||||
|
app.listen(8080);
|
||||||
|
|
||||||
|
console.log('Compiling...')
|
||||||
|
|
||||||
|
compiler.watch({
|
||||||
|
aggregateTimeout: 300,
|
||||||
|
poll: undefined
|
||||||
|
}, (err, stats) => {
|
||||||
|
if (err) return console.error(err)
|
||||||
|
|
||||||
|
if (server && !stats.hasErrors()) {
|
||||||
|
server.kill('SIGKILL')
|
||||||
|
server = spawn('node', ['./dist/server.js']);
|
||||||
|
} else {
|
||||||
|
server = spawn('node', ['./dist/server.js']);
|
||||||
|
}
|
||||||
|
})
|
@ -23,7 +23,7 @@ if (isProd) {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
entries.unshift('webpack-hot-middleware/client?path=http://localhost:8080/__webpack_hmr&reload=true');
|
entries.unshift(`webpack-hot-middleware/client?path=http://localhost:8080/__webpack_hmr&reload=true`);
|
||||||
plugins.push(
|
plugins.push(
|
||||||
new webpack.HotModuleReplacementPlugin(),
|
new webpack.HotModuleReplacementPlugin(),
|
||||||
new webpack.NoEmitOnErrorsPlugin()
|
new webpack.NoEmitOnErrorsPlugin()
|
||||||
@ -87,41 +87,4 @@ const config = {
|
|||||||
chunkModules: false
|
chunkModules: false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
module.exports = config
|
||||||
// If this file is directly run with node, start the development server
|
|
||||||
// instead of exporting the webpack config.
|
|
||||||
if (require.main === module) {
|
|
||||||
const compiler = webpack(require('./webpack.config.server.js'))
|
|
||||||
const client = webpack(config);
|
|
||||||
let server = null;
|
|
||||||
const app = require('express')();
|
|
||||||
app.use(function(req, res, next) {
|
|
||||||
res.header("Access-Control-Allow-Origin", "*");
|
|
||||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
app.use(require('webpack-dev-middleware')(client, {
|
|
||||||
noInfo: true,
|
|
||||||
publicPath: config.output.publicPath
|
|
||||||
}));
|
|
||||||
app.use(require('webpack-hot-middleware')(client));
|
|
||||||
app.listen(8080);
|
|
||||||
|
|
||||||
console.log('Compiling...')
|
|
||||||
|
|
||||||
compiler.watch({
|
|
||||||
aggregateTimeout: 300,
|
|
||||||
poll: undefined
|
|
||||||
}, (err, stats) => {
|
|
||||||
if (err) return console.error(err)
|
|
||||||
|
|
||||||
if (server && !stats.hasErrors()) {
|
|
||||||
server.kill('SIGKILL')
|
|
||||||
server = spawn('node', ['./dist/server.js']);
|
|
||||||
} else {
|
|
||||||
server = spawn('node', ['./dist/server.js']);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
module.exports = config
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user