From 89431ac3699995b1c1cbdabab57ff912279456eb Mon Sep 17 00:00:00 2001 From: BeeCoding Date: Wed, 10 Oct 2018 18:43:11 -0300 Subject: [PATCH 1/2] fix: spaces in webpack-dev-server path bug Fixes #141 --- src/app/editor/editor.config.ts | 2 +- src/server/webpack-dev-server-task.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/editor/editor.config.ts b/src/app/editor/editor.config.ts index 93b721a..0a4b9be 100644 --- a/src/app/editor/editor.config.ts +++ b/src/app/editor/editor.config.ts @@ -4,7 +4,7 @@ import { CONF_PROD } from '../environments/environment.prod'; // tslint:disable const ENV: string = 'dev'; -const VERSION: string = '1.0.1'; +const VERSION: string = '1.0.2'; export let AppConfig: { production: boolean; diff --git a/src/server/webpack-dev-server-task.ts b/src/server/webpack-dev-server-task.ts index fd42cfe..540cb84 100644 --- a/src/server/webpack-dev-server-task.ts +++ b/src/server/webpack-dev-server-task.ts @@ -28,7 +28,7 @@ export class WebpackDevServer extends WebpackTask { const process = spawnPackageScript( this.project.baseDir(), 'webpack-dev-server', - [`--port`, String(port), '--config', config, '--color'], + [`--port`, String(port), '--config', `"${config}"`, '--color'], { cwd: this.project.baseDir(), env: { From 3c5540f99ac4d89958034734235e5432f0d6f39f Mon Sep 17 00:00:00 2001 From: BeeCoding Date: Wed, 10 Oct 2018 20:12:22 -0300 Subject: [PATCH 2/2] fix: add support to shell-quote to escape path --- package-lock.json | 23 +++++++++++------------ package.json | 2 ++ src/server/webpack-dev-server-task.ts | 4 +++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index b592c54..783fbcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@mixer/cdk", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -559,6 +559,11 @@ "@types/node": "8.10.8" } }, + "@types/shell-quote": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@types/shell-quote/-/shell-quote-1.6.0.tgz", + "integrity": "sha512-BFonQx849sYB2YOJZBUEfbWdaJcqRb6+ASvgUBtcmg2JRTjBaV2Wgn0SD0gWNIZ+rd7KPysPCjLUOUXnBDUlBg==" + }, "@types/sinon": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-2.3.7.tgz", @@ -797,8 +802,7 @@ "array-filter": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", - "dev": true + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" }, "array-find-index": { "version": "1.0.2", @@ -825,14 +829,12 @@ "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", - "dev": true + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" }, "array-reduce": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", - "dev": true + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" }, "array-union": { "version": "1.0.2", @@ -4407,8 +4409,7 @@ "jsbn": { "version": "0.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "json-schema": { "version": "0.2.3", @@ -6220,8 +6221,7 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsonpointer": { "version": "4.0.1", @@ -16023,7 +16023,6 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "dev": true, "requires": { "array-filter": "0.0.1", "array-map": "0.0.0", diff --git a/package.json b/package.json index 6b6b49e..297c163 100644 --- a/package.json +++ b/package.json @@ -167,6 +167,7 @@ }, "dependencies": { "@mixer/cdk-webpack-plugin": "^0.1.4", + "@types/shell-quote": "^1.6.0", "chalk": "^2.3.0", "command-exists": "^1.2.2", "electron-updater": "^2.21.4", @@ -180,6 +181,7 @@ "portfinder": "^1.0.13", "raygun": "^0.9.1", "rxjs": "5.5.8", + "shell-quote": "^1.6.1", "tar": "^4.0.1", "tree-kill": "^1.2.0", "yargs": "^8.0.2" diff --git a/src/server/webpack-dev-server-task.ts b/src/server/webpack-dev-server-task.ts index 540cb84..9fccc35 100644 --- a/src/server/webpack-dev-server-task.ts +++ b/src/server/webpack-dev-server-task.ts @@ -2,6 +2,7 @@ import { notificationEnv } from '@mixer/cdk-webpack-plugin/dist/src/notifier'; import { ChildProcess } from 'child_process'; import * as portfinder from 'portfinder'; import { filter } from 'rxjs/operators'; +import { quote } from 'shell-quote'; import { IWebpackInstance, WebpackState } from '../app/editor/controls/controls.actions'; import { spawnPackageScript } from './npm-exec'; @@ -25,10 +26,11 @@ export class WebpackDevServer extends WebpackTask { */ protected async startWebpack(config: string): Promise<[IWebpackInstance, ChildProcess]> { const port: number = await portfinder.getPortPromise({ port: 13370 }); + const parsedConfig: string = quote([config]); const process = spawnPackageScript( this.project.baseDir(), 'webpack-dev-server', - [`--port`, String(port), '--config', `"${config}"`, '--color'], + [`--port`, String(port), '--config', `"${parsedConfig.slice(1, -1)}"`, '--color'], { cwd: this.project.baseDir(), env: {