1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-06-29 16:37:56 +00:00
seahub/frontend/config/server.js
2023-11-24 16:12:57 +08:00

65 lines
1.6 KiB
JavaScript

'use strict';
process.env.NODE_ENV = 'development';
process.env.BABEL_ENV = 'development';
const Webpack = require('webpack')
const WebpackDevServer = require('webpack-dev-server')
const ignoredFiles = require('react-dev-utils/ignoredFiles');
const configFactory = require('./webpack.config');
const paths = require('./paths');
const getHttpsConfig = require('./getHttpsConfig');
const HOST = process.env.HOST || '0.0.0.0';
const PORT = process.env.PORT || '3000';
const publicPath = process.env.PUBLIC_PATH || '/assets/bundles/';
const devServerOptions = {
allowedHosts: 'all',
hot: true,
static: {
directory: paths.appBuild,
publicPath: publicPath,
watch: {
ignored: ignoredFiles(paths.appSrc),
},
},
client: {
overlay: false,
},
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Headers': '*',
},
// Enable gzip compression of generated files.
compress: true,
https: getHttpsConfig(),
host: HOST,
port: PORT,
};
console.log('Dev server options:', devServerOptions);
const config = configFactory('development');
const compiler = Webpack(config);
try {
const server = new WebpackDevServer(devServerOptions, compiler);
server.startCallback(() => {
console.log(`Listening at http://${HOST}:${PORT}${publicPath}`);
});
['SIGINT', 'SIGTERM'].forEach(function (sig) {
process.on(sig, function () {
server.close();
process.exit();
});
});
} catch(err) {
if (err && err.message) {
console.log(err.message);
}
process.exit(1);
}