mirror of
https://github.com/wassname/talk.git
synced 2026-06-27 21:39:07 +08:00
c9a0ab8848
* chore: upgrade fluent * chore: upgrade metascraper * chore: upgrade akismet-api * chore: upgrade apollo-server-express * chore: upgrade archiver * chore: upgrade bull * chore: upgrade express, cheerio, content-security-policy-builder * chore: upgrade convict * chore: upgrade cors, cron * chore: upgrade csv-stringify * chore: upgrade dompurify * chore: upgrade dotenv * chore: upgrade express-static-gzip * chore: upgrade fs-extra * chore: upgrade graphql-js * chore: upgrade graphql packages * chore: upgrade html-minifier * chore: upgrade html-to-text * chore: upgrade ioredis * chore: upgrade joi * chore: upgrade jsdom * chore: upgrade jsonwebtoken * chore: upgrade juice * chore: upgrade jwks-rsa ad linkifyjs * chore: upgrade lodash * chore: upgrade luxon * chore: upgrade metascraper * chore: upgrade mongodb * chore: upgrade ms * chore: upgrade node and node-fetch types * chore: upgrade nodemailer nunjucks and typescript-eslint * chore: Upgrade passport * upgrade: prom-client react-helmet source-map-support stack-utils * chore: upgrade uuid * chore: upgrade @babel packages * chore: upgrade types * chore: upgrade autoprefixer * chore: upgrade jest * chore: upgrade ts-jest * chore: remove linkify.d.ts * chore: upgrade bowser * chore: case-sensitive-paths-webpack-plugin * chore: upgrade classnames * chore: upgrade commander * chore: upgrade comment-json * chore: upgrade cross-spawn compression-webpack-plugin del * chore: upgrade build and watch related dependencies * chore: upgrade css-vars-ponyfill * chore: upgrade eslint and css-vars-ponyfill * chore: upgrade enzyme and eventemitter2 * fix: form bug * chore: upgrade farce * chore: upgrade final form * chore: upgrade react-popper * chore: upgrade flat and fork-ts-checker-webpack-plugin * chore: upgrade husky and gulp related, intersection observer * chore: upgrade lint-staged * chore: upgrade marked, loader-utils, mini-css-extract-plugin * chore: upgrade postcss-nested, proxy-polyfill, pstree.remy * chore: upgrade prettier * chore: fix prettier changes, upgrade react * chore: mute createFactory deprecated message * chore: upgrade react-copy-to-clipbard, react-axe, react-dom, react-test-renderer, react-timeago * chore: upgrade react-transistion-group, react-responsive * chore: upgrade types * chore: upgrade react-dev-utils, react-error-overlay regenerator-runtime * chore: upgrade types, sinon, sockjs-client, strip-ansi * chore: upgrade types, fonts * chore: upgrade nunjucks, ts-node, typescript-snapshot-plugin, wait-for-expect * chore: upgrade eslint packages * chore: upgrade fluent, types * chore: upgrade jsdom dep * chore: upgrade mongo * chore: upgrade deps * chore: upgrade typescript, recompose * chore: upgrade prettier * chore: remove obsolete prettier config * chore: upgrade jsdom types * chore: upgrade typescript-eslint * chore: upgrad deps * chore: upgrade deps * chore: upgrade relay related modules * chore: upgrade docz WIP * chore: upgrade docz * chore: add guard * chore: remove obsolete line * chore: comment * chore: refactors * fix: hook count change error
103 lines
3.0 KiB
TypeScript
103 lines
3.0 KiB
TypeScript
#!/usr/bin/env ts-node
|
|
import dotenv from "dotenv";
|
|
|
|
// Apply all the configuration provided in the .env file if it isn't already in
|
|
// the environment.
|
|
dotenv.config();
|
|
|
|
import chalk from "chalk";
|
|
import webpack from "webpack";
|
|
import WebpackDevServer from "webpack-dev-server";
|
|
import { createCompiler, prepareUrls } from "./WebpackDevServerUtils";
|
|
|
|
import createDevServerConfig from "../config/webpackDevServer.config";
|
|
import config from "../src/core/build/config";
|
|
import createWebpackConfig from "../src/core/build/createWebpackConfig";
|
|
|
|
/* eslint-disable no-console */
|
|
|
|
// Enforce environment to be development.
|
|
config.validate().set("env", "development");
|
|
|
|
process.env.WEBPACK = "true";
|
|
process.env.BABEL_ENV = "development";
|
|
process.env.NODE_ENV = "development";
|
|
|
|
// Makes the script crash on unhandled rejections instead of silently
|
|
// ignoring them. In the future, promise rejections that are not handled will
|
|
// terminate the Node.js process with a non-zero exit code.
|
|
process.on("unhandledRejection", (err) => {
|
|
throw err;
|
|
});
|
|
|
|
const PORT = config.get("dev_port");
|
|
const HOST = "0.0.0.0";
|
|
|
|
if (process.env.HOST) {
|
|
console.log(
|
|
chalk.cyan(
|
|
`Attempting to bind to HOST environment variable: ${chalk.yellow(
|
|
chalk.bold(process.env.HOST)
|
|
)}`
|
|
)
|
|
);
|
|
console.log(
|
|
`If this was unintentional, check that you haven't mistakenly set it in your shell.`
|
|
);
|
|
console.log(`Learn more here: ${chalk.yellow("http://bit.ly/2mwWSwH")}`);
|
|
console.log();
|
|
}
|
|
|
|
const urls = prepareUrls("http", HOST, PORT);
|
|
const webpackConfig = createWebpackConfig(config, { watch: true });
|
|
|
|
const devSocket = {
|
|
warnings: (warnings: any) =>
|
|
(devServer as any).sockWrite(
|
|
(devServer as any).sockets,
|
|
"warnings",
|
|
warnings
|
|
),
|
|
errors: (errors: any) =>
|
|
(devServer as any).sockWrite((devServer as any).sockets, "errors", errors),
|
|
};
|
|
|
|
// Create a webpack compiler that is configured with custom messages.
|
|
const compiler = createCompiler({
|
|
webpack,
|
|
config: webpackConfig,
|
|
appName: "Coral",
|
|
urls,
|
|
// useTypeScript: true, /* This is currently not working, as the ForkTsCheckerWebpackPlugin hooks are not triggering for some reason */
|
|
useTypeScript: false, // This would
|
|
useYarn: false,
|
|
devSocket,
|
|
});
|
|
|
|
// Serve webpack assets generated by the compiler over a web sever.
|
|
const serverConfig = createDevServerConfig({
|
|
allowedHost: urls.lanUrlForConfig,
|
|
serverPort: config.get("port"),
|
|
publicPath: webpackConfig[0].output!.publicPath!,
|
|
});
|
|
|
|
// Disable the host check on the dev server as this is used exclusively for
|
|
// development and not in production.
|
|
serverConfig.disableHostCheck = true;
|
|
|
|
const devServer = new WebpackDevServer(compiler, serverConfig);
|
|
// Launch WebpackDevServer.
|
|
devServer.listen(PORT, HOST, (err: Error) => {
|
|
if (err) {
|
|
return console.log(err);
|
|
}
|
|
console.log(chalk.cyan("Starting the development server...\n"));
|
|
});
|
|
|
|
["SIGINT", "SIGTERM"].forEach((sig: any) => {
|
|
process.once(sig, () => {
|
|
devServer.close();
|
|
process.exit();
|
|
});
|
|
});
|