@augustaba/rider-cli
Version:
react project build tool
61 lines (45 loc) • 1.79 kB
JavaScript
;
process.env.BABEL_ENV = 'development';
process.env.NODE_ENV = 'development';
const HOST = process.env.HOST || '0.0.0.0';
const PORT = process.env.PORT || 3001;
const PROTOCOL = 'http';
const semver = require('semver');
const chalk = require('chalk');
const { webpack } = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const configFactory = require('../config/webpack.config');
const paths = require('../config/paths');
const createDevServerConfig = require('../config/webpack.devServerConfig');
const { prepareUrls } = require('../utils/webpackDevServerUtils');
const openBrowser = require('../utils/openBrowser');
const react = require(require.resolve('react', { paths: [paths.appPath] }));
const isInteractive = process.stdout.isTTY;
console.log('child start', process.argv);
const config = configFactory('development');
const proxySetting = require(paths.appPackageJson).proxy;
const urls = prepareUrls(PROTOCOL, HOST, PORT);
const compiler = webpack(config);
const serverConfig = {
...createDevServerConfig(proxySetting, urls.lanUrlForConfig),
host: HOST,
port: PORT,
};
const devServer = new WebpackDevServer(serverConfig, compiler);
devServer.startCallback(() => {
if (isInteractive) {
process.stdout.write(process.platform === 'win32' ? '\x1B[2J\x1B[0f' : '\x1B[2J\x1B[3J\x1B[H');
}
if (semver.lt(react.version, '16.10.0')) {
console.log(chalk.yellow(`Fast Refresh requires React 16.10 or higher. You are using React ${react.version}.`));
}
console.log(chalk.cyan('Starting the development server...\n'));
openBrowser(urls.localUrlForBrowser);
});
['SIGINT', 'SIGTERM'].forEach(function (sig) {
process.on(sig, function () {
devServer.close();
process.exit();
});
});
// console.log(config)