Skip to content

Commit ca96c58

Browse files
committed
fix(dev-server): start server w/out dev websocket, suppress startup logs config
1 parent 6c32b26 commit ca96c58

8 files changed

Lines changed: 38 additions & 28 deletions

File tree

src/cli/task-serve.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import exit from 'exit';
66
export async function taskServe(process: NodeJS.Process, config: d.Config, flags: d.ConfigFlags) {
77
const { Compiler } = require('../compiler/index.js');
88

9+
config.suppressLogs = true;
10+
911
const compiler: d.Compiler = new Compiler(config);
1012
if (!compiler.isValid) {
1113
exit(1);
@@ -15,6 +17,7 @@ export async function taskServe(process: NodeJS.Process, config: d.Config, flags
1517
config.devServer.openBrowser = flags.open;
1618
config.devServer.hotReplacement = false;
1719
config.devServer.initialLoadUrl = '/';
20+
config.devServer.websocket = false;
1821
config.maxConcurrentWorkers = 1;
1922

2023
config.devServer.root = process.cwd();

src/compiler/compiler.ts

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,29 +27,31 @@ export class Compiler implements d.Compiler {
2727
startupMsg += `💎`;
2828
}
2929

30-
config.logger.info(config.logger.cyan(startupMsg));
31-
32-
if (config.sys.semver.prerelease(config.sys.compiler.version)) {
33-
config.logger.warn(config.sys.color.yellow(`This is a prerelease build, undocumented changes might happen at any time. Technical support is not available for prereleases, but any assistance testing is appreciated.`));
34-
}
35-
if (config.devMode && config.buildEs5) {
36-
config.logger.warn(`Generating ES5 during development is a very task expensive, initial and incremental builds will be much slower. Drop the '--es5' flag and use a modern browser for development.
37-
If you need ESM output, use the '--esm' flag instead.`);
38-
}
39-
if (config.devMode && !config.enableCache) {
40-
config.logger.warn(`Disabling cache during development will slow down incremental builds.`);
41-
30+
if (config.suppressLogs !== true) {
31+
config.logger.info(config.logger.cyan(startupMsg));
32+
33+
if (config.sys.semver.prerelease(config.sys.compiler.version)) {
34+
config.logger.warn(config.sys.color.yellow(`This is a prerelease build, undocumented changes might happen at any time. Technical support is not available for prereleases, but any assistance testing is appreciated.`));
35+
}
36+
if (config.devMode && config.buildEs5) {
37+
config.logger.warn(`Generating ES5 during development is a very task expensive, initial and incremental builds will be much slower. Drop the '--es5' flag and use a modern browser for development.
38+
If you need ESM output, use the '--esm' flag instead.`);
39+
}
40+
if (config.devMode && !config.enableCache) {
41+
config.logger.warn(`Disabling cache during development will slow down incremental builds.`);
42+
43+
}
44+
config.logger.debug(`${details.platform}, ${details.cpuModel}, cpus: ${details.cpus}`);
45+
config.logger.debug(`${details.runtime} ${details.runtimeVersion}`);
46+
47+
config.logger.debug(`compiler runtime: ${config.sys.compiler.runtime}`);
48+
config.logger.debug(`compiler build: __BUILDID__`);
49+
50+
const workerOpts = config.sys.initWorkers(config.maxConcurrentWorkers, config.maxConcurrentTasksPerWorker);
51+
config.logger.debug(`compiler workers: ${workerOpts.maxConcurrentWorkers}, tasks per worker: ${workerOpts.maxConcurrentTasksPerWorker}`);
52+
53+
config.logger.debug(`minifyJs: ${config.minifyJs}, minifyCss: ${config.minifyCss}, buildEs5: ${config.buildEs5}`);
4254
}
43-
config.logger.debug(`${details.platform}, ${details.cpuModel}, cpus: ${details.cpus}`);
44-
config.logger.debug(`${details.runtime} ${details.runtimeVersion}`);
45-
46-
config.logger.debug(`compiler runtime: ${config.sys.compiler.runtime}`);
47-
config.logger.debug(`compiler build: __BUILDID__`);
48-
49-
const workerOpts = config.sys.initWorkers(config.maxConcurrentWorkers, config.maxConcurrentTasksPerWorker);
50-
config.logger.debug(`compiler workers: ${workerOpts.maxConcurrentWorkers}, tasks per worker: ${workerOpts.maxConcurrentTasksPerWorker}`);
51-
52-
config.logger.debug(`minifyJs: ${config.minifyJs}, minifyCss: ${config.minifyCss}, buildEs5: ${config.buildEs5}`);
5355

5456
this.ctx = getCompilerCtx(config);
5557

src/compiler/config/validate-dev-server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export function validateDevServer(config: d.Config) {
2424
setBooleanConfig(config.devServer, 'gzip', null, true);
2525
setBooleanConfig(config.devServer, 'hotReplacement', null, true);
2626
setBooleanConfig(config.devServer, 'openBrowser', null, true);
27+
setBooleanConfig(config.devServer, 'websocket', null, true);
2728

2829
validateProtocol(config.devServer);
2930

src/declarations/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ export interface Config extends StencilConfig {
152152
fsNamespace?: string;
153153
logLevel?: 'error'|'warn'|'info'|'debug'|string;
154154
rootDir?: string;
155+
suppressLogs?: boolean;
155156
_isValidated?: boolean;
156157
_isTesting?: boolean;
157158
}

src/declarations/dev-server.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export interface DevServerConfig {
2323
port?: number;
2424
protocol?: 'http' | 'https';
2525
root?: string;
26+
websocket?: boolean;
2627
}
2728

2829

src/dev-server/request-handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export function createRequestHandler(devServerConfig: d.DevServerConfig, fs: d.F
2626
return serve404Content(res, `404 File Not Found, base url: ${devServerConfig.baseUrl}`);
2727
}
2828

29-
if (isDevClient(req.pathname)) {
29+
if (isDevClient(req.pathname) && devServerConfig.websocket) {
3030
return serveDevClient(devServerConfig, fs, req, res);
3131
}
3232

src/dev-server/serve-file.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export async function serveFile(devServerConfig: d.DevServerConfig, fs: d.FileSy
1515
// easy text file, use the internal cache
1616
let content = await fs.readFile(req.filePath);
1717

18-
if (util.isHtmlFile(req.filePath) && !util.isDevServerClient(req.pathname)) {
18+
if (devServerConfig.websocket && util.isHtmlFile(req.filePath) && !util.isDevServerClient(req.pathname)) {
1919
// auto inject our dev server script
2020
content += getDevServerClientScript(devServerConfig, req);
2121

src/dev-server/start-server-worker.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@ export async function startDevServerWorker(process: NodeJS.Process, devServerCon
1515
// create the http server listening for and responding to requests from the browser
1616
let httpServer = await createHttpServer(devServerConfig, fs, destroys);
1717

18-
// upgrade web socket requests the server receives
19-
createWebSocket(process, httpServer, destroys);
18+
if (devServerConfig.websocket) {
19+
// upgrade web socket requests the server receives
20+
createWebSocket(process, httpServer, destroys);
21+
}
2022

2123
// start listening!
2224
httpServer.listen(devServerConfig.port, devServerConfig.address);
@@ -30,7 +32,7 @@ export async function startDevServerWorker(process: NodeJS.Process, devServerCon
3032
}
3133
});
3234

33-
function closeServer() {
35+
const closeServer = () => {
3436
// probably recived a SIGINT message from the parent cli process
3537
// let's do our best to gracefully close everything down first
3638
destroys.forEach(destroy => {
@@ -45,7 +47,7 @@ export async function startDevServerWorker(process: NodeJS.Process, devServerCon
4547
}, 5000).unref();
4648

4749
process.removeAllListeners('message');
48-
}
50+
};
4951

5052
process.once('SIGINT', closeServer);
5153

0 commit comments

Comments
 (0)