From 1869aa2a203a939febbb5a465ccf5bfb8a65cdc0 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sat, 3 Mar 2018 18:32:53 -0500 Subject: [PATCH] feat: Generator now supports template inheritance --- .../__tests__/tsPluginE2e.spec.js | 2 +- .../generator/template/src/App.vue | 64 +++++-------------- .../template/src/components/HelloWorld.vue | 54 ++-------------- .../generator/template/src/views/Home.vue | 20 +++--- .../generator/template/public/index.html | 4 +- .../generator/template/src/App.vue | 6 +- .../generator/template/src/main.js | 8 +-- .../generator/template/src/router.js | 2 +- .../generator/template/src/store.js | 2 +- .../generator/template/src/views/About.vue | 2 +- .../generator/template/src/views/Home.vue | 2 +- packages/@vue/cli/lib/GeneratorAPI.js | 38 ++++++++++- packages/@vue/cli/package.json | 3 +- yarn.lock | 13 +++- 14 files changed, 96 insertions(+), 124 deletions(-) diff --git a/packages/@vue/cli-plugin-typescript/__tests__/tsPluginE2e.spec.js b/packages/@vue/cli-plugin-typescript/__tests__/tsPluginE2e.spec.js index 75f9bc1ad..6fc1abd0e 100644 --- a/packages/@vue/cli-plugin-typescript/__tests__/tsPluginE2e.spec.js +++ b/packages/@vue/cli-plugin-typescript/__tests__/tsPluginE2e.spec.js @@ -13,7 +13,7 @@ test('cypress', async () => { }) test('cypress with router', async () => { - const project = await create('ts-e2e-cypress', { + const project = await create('ts-e2e-cypress-router', { router: true, plugins: { '@vue/cli-plugin-typescript': {}, diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/App.vue b/packages/@vue/cli-plugin-typescript/generator/template/src/App.vue index 12c67eb5b..775a05eab 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/App.vue +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/App.vue @@ -1,13 +1,17 @@ -<%_ if (!rootOptions.router) { _%> - +--- +extend: '@vue/cli-service/generator/template/src/App.vue' +replace: + - !!js/regexp /Welcome to Your Vue\.js App/ + - !!js/regexp / -<%_ } else { _%> - -<%_ } _%> - - +<%# END_REPLACE %> diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/components/HelloWorld.vue b/packages/@vue/cli-plugin-typescript/generator/template/src/components/HelloWorld.vue index 04d50412b..6d6d893e9 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/components/HelloWorld.vue +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/components/HelloWorld.vue @@ -1,35 +1,7 @@ - - +--- +extend: '@vue/cli-service/generator/template/src/components/HelloWorld.vue' +replace: !!js/regexp / - - - diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue b/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue index 485ed7e62..1e334b8d1 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue @@ -1,11 +1,15 @@ -<%_ if (rootOptions.router) { _%> - +--- +extend: '@vue/cli-service/generator/template/src/views/Home.vue' +replace: + - !!js/regexp /Welcome to Your Vue\.js App/ + - !!js/regexp / -<%_ } _%> +<%# END_REPLACE %> diff --git a/packages/@vue/cli-service/generator/template/public/index.html b/packages/@vue/cli-service/generator/template/public/index.html index 567f51458..098c136fe 100644 --- a/packages/@vue/cli-service/generator/template/public/index.html +++ b/packages/@vue/cli-service/generator/template/public/index.html @@ -5,11 +5,11 @@ - <%= options.projectName %> + <%= rootOptions.projectName %>
diff --git a/packages/@vue/cli-service/generator/template/src/App.vue b/packages/@vue/cli-service/generator/template/src/App.vue index 8b2c328ca..9e33ce9fc 100644 --- a/packages/@vue/cli-service/generator/template/src/App.vue +++ b/packages/@vue/cli-service/generator/template/src/App.vue @@ -1,4 +1,4 @@ -<%_ if (!options.router) { _%> +<%_ if (!rootOptions.router) { _%>