Skip to content

Commit 78e2fa7

Browse files
fix: add serve script if opted for WDS with init (#2424)
* fix: add start script if opted for WDS * chore: rename to serve
1 parent dd0f163 commit 78e2fa7

File tree

8 files changed

+23
-5
lines changed

8 files changed

+23
-5
lines changed

packages/generators/init-template/package.json.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
module.exports = (usingDefaults) => {
1+
module.exports = (isUsingDevServer) => {
22
const scripts = {
33
build: 'webpack',
44
};
5-
if (usingDefaults) {
6-
scripts.start = 'webpack-dev-server';
5+
if (isUsingDevServer) {
6+
scripts.serve = 'webpack serve';
77
}
88

99
return {

packages/generators/src/init-generator.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,13 @@ export default class InitGenerator extends CustomGenerator {
244244
public writing(): void {
245245
this.config.set('configuration', this.configuration);
246246

247+
const isUsingDevServer = this.dependencies.includes('webpack-dev-server');
247248
const packageJsonTemplatePath = '../init-template/package.json.js';
248-
// eslint-disable-next-line @typescript-eslint/no-var-requires
249-
this.fs.extendJSON(this.destinationPath('package.json'), require(packageJsonTemplatePath)(this.autoGenerateConfig));
249+
this.fs.extendJSON(
250+
this.destinationPath('package.json'),
251+
// eslint-disable-next-line @typescript-eslint/no-var-requires
252+
require(packageJsonTemplatePath)(isUsingDevServer),
253+
);
250254

251255
const generateEntryFile = (entryPath: string, name: string): void => {
252256
entryPath = entryPath.replace(/'/g, '');

test/init/auto/init-auto.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ describe('init auto flag', () => {
5151
expect(pkgJson).toBeTruthy();
5252
expect(pkgJson['devDependencies']).toBeTruthy();
5353
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
54+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
5455
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
56+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
5557
};
5658
expect(pkgJsonTests).not.toThrow();
5759

test/init/generation-path/init-generation-path.test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ describe('init generate-path flag', () => {
4242
expect(pkgJson).toBeTruthy();
4343
expect(pkgJson['devDependencies']).toBeTruthy();
4444
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
45+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
4546
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
47+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
4648
};
4749
expect(pkgJsonTests).not.toThrow();
4850
});
@@ -78,7 +80,9 @@ describe('init generate-path flag', () => {
7880
expect(pkgJson).toBeTruthy();
7981
expect(pkgJson['devDependencies']).toBeTruthy();
8082
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
83+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
8184
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
85+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
8286
};
8387
expect(pkgJsonTests).not.toThrow();
8488
});

test/init/generator/init-inquirer.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ describe('init', () => {
4646
expect(pkgJson).toBeTruthy();
4747
expect(pkgJson['devDependencies']).toBeTruthy();
4848
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
49+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
4950
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
51+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
5052
};
5153
expect(pkgJsonTests).not.toThrow();
5254

test/init/language/css/init-language-css.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,11 @@ describe('init with SCSS', () => {
7272
expect(pkgJson).toBeTruthy();
7373
expect(pkgJson['devDependencies']).toBeTruthy();
7474
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
75+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
7576
expect(pkgJson['devDependencies']['node-sass']).toBeTruthy();
7677
expect(pkgJson['devDependencies']['mini-css-extract-plugin']).toBeTruthy();
7778
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
79+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
7880
};
7981
expect(pkgJsonTests).not.toThrow();
8082
});

test/init/language/js/init-language-js.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,11 @@ describe('init with Typescript', () => {
5656
expect(pkgJson).toBeTruthy();
5757
expect(pkgJson['devDependencies']).toBeTruthy();
5858
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
59+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
5960
expect(pkgJson['devDependencies']['typescript']).toBeTruthy();
6061
expect(pkgJson['devDependencies']['ts-loader']).toBeTruthy();
6162
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
63+
expect(pkgJson['scripts']['serve'] == 'webpack serve').toBeTruthy();
6264
};
6365
expect(pkgJsonTests).not.toThrow();
6466
});

test/init/multipleEntries/init-multipleEntries.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ describe('init with multiple entries', () => {
5151
expect(pkgJson).toBeTruthy();
5252
expect(pkgJson['devDependencies']).toBeTruthy();
5353
expect(pkgJson['devDependencies']['webpack']).toBeTruthy();
54+
expect(pkgJson['devDependencies']['webpack-dev-server']).toBeTruthy();
5455
expect(pkgJson['devDependencies']['terser-webpack-plugin']).toBeTruthy();
5556
expect(pkgJson['scripts']['build'] == 'webpack').toBeTruthy();
57+
expect(pkgJson['scripts']['serve'] == 'webpack-dev-server').toBeTruthy();
5658
};
5759
expect(pkgJsonTests).not.toThrow();
5860
});

0 commit comments

Comments
 (0)