From 68c371df2e045db36499915411a348f2d9278335 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 4 Nov 2021 16:08:30 +0800 Subject: [PATCH 1/3] chore: don't throw error on single-word component names for now We'll fix it later. But that is not the goal of this PR. --- packages/@vue/cli-ui-addon-webpack/.eslintrc.js | 3 +++ packages/@vue/cli-ui-addon-widgets/.eslintrc.js | 3 ++- packages/@vue/cli-ui/.eslintrc.js | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/@vue/cli-ui-addon-webpack/.eslintrc.js b/packages/@vue/cli-ui-addon-webpack/.eslintrc.js index ab7c1dc63a..4a2b4dd2c5 100644 --- a/packages/@vue/cli-ui-addon-webpack/.eslintrc.js +++ b/packages/@vue/cli-ui-addon-webpack/.eslintrc.js @@ -15,5 +15,8 @@ module.exports = { babelOptions: { cwd: __dirname } + }, + rules: { + 'vue/multi-word-component-names': 'warn' } } diff --git a/packages/@vue/cli-ui-addon-widgets/.eslintrc.js b/packages/@vue/cli-ui-addon-widgets/.eslintrc.js index e6df3ac965..5ca8071ca2 100644 --- a/packages/@vue/cli-ui-addon-widgets/.eslintrc.js +++ b/packages/@vue/cli-ui-addon-widgets/.eslintrc.js @@ -9,7 +9,8 @@ module.exports = { ], rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'vue/multi-word-component-names': 'warn' }, parserOptions: { parser: '@babel/eslint-parser', diff --git a/packages/@vue/cli-ui/.eslintrc.js b/packages/@vue/cli-ui/.eslintrc.js index 3c45b98389..e2094b68ec 100644 --- a/packages/@vue/cli-ui/.eslintrc.js +++ b/packages/@vue/cli-ui/.eslintrc.js @@ -19,7 +19,8 @@ module.exports = { 'vue/html-self-closing': 'error', 'vue/no-use-v-if-with-v-for': 'warn', 'vue/no-unused-vars': 'warn', - 'vue/return-in-computed-property': 'warn' + 'vue/return-in-computed-property': 'warn', + 'vue/multi-word-component-names': 'warn' }, parserOptions: { From 2ae8e2b05eb6117404ee9bb349624b7d83b6dfaf Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 4 Nov 2021 16:48:06 +0800 Subject: [PATCH 2/3] refactor: use multi-word names for router views - About -> AboutView - Home -> HomeView This is to fix the errors raised by the new eslint rule --- .../__tests__/routerGenerator.spec.js | 12 ++++++------ .../generator/template-vue3/src/router/index.js | 8 ++++---- .../generator/template/src/router/index.js | 8 ++++---- .../template/src/views/{About.vue => AboutView.vue} | 0 .../template/src/views/{Home.vue => HomeView.vue} | 2 +- .../__tests__/tsGenerator.spec.js | 6 +++--- .../src/views/{Home.vue => HomeView.vue} | 6 +++--- .../template/src/views/{Home.vue => HomeView.vue} | 6 +++--- 8 files changed, 24 insertions(+), 24 deletions(-) rename packages/@vue/cli-plugin-router/generator/template/src/views/{About.vue => AboutView.vue} (100%) rename packages/@vue/cli-plugin-router/generator/template/src/views/{Home.vue => HomeView.vue} (95%) rename packages/@vue/cli-plugin-typescript/generator/template-vue3/src/views/{Home.vue => HomeView.vue} (91%) rename packages/@vue/cli-plugin-typescript/generator/template/src/views/{Home.vue => HomeView.vue} (91%) diff --git a/packages/@vue/cli-plugin-router/__tests__/routerGenerator.spec.js b/packages/@vue/cli-plugin-router/__tests__/routerGenerator.spec.js index b9121c2a3b..0e8a165f06 100644 --- a/packages/@vue/cli-plugin-router/__tests__/routerGenerator.spec.js +++ b/packages/@vue/cli-plugin-router/__tests__/routerGenerator.spec.js @@ -9,8 +9,8 @@ test('base', async () => { expect(files['src/router/index.js']).toBeTruthy() expect(files['src/router/index.js']).not.toMatch('history') - expect(files['src/views/About.vue']).toBeTruthy() - expect(files['src/views/Home.vue']).toBeTruthy() + expect(files['src/views/AboutView.vue']).toBeTruthy() + expect(files['src/views/HomeView.vue']).toBeTruthy() expect(files['src/App.vue']).toMatch('Home') expect(files['src/App.vue']).not.toMatch(' <%# END_REPLACE %> diff --git a/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue b/packages/@vue/cli-plugin-typescript/generator/template/src/views/HomeView.vue similarity index 91% rename from packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue rename to packages/@vue/cli-plugin-typescript/generator/template/src/views/HomeView.vue index 758e910ec5..7d61ef30dd 100644 --- a/packages/@vue/cli-plugin-typescript/generator/template/src/views/Home.vue +++ b/packages/@vue/cli-plugin-typescript/generator/template/src/views/HomeView.vue @@ -1,5 +1,5 @@ --- -extend: '@vue/cli-plugin-router/generator/template/src/views/Home.vue' +extend: '@vue/cli-plugin-router/generator/template/src/views/HomeView.vue' when: "rootOptions.plugins && rootOptions.plugins['@vue/cli-plugin-router']" replace: - !!js/regexp /Welcome to Your Vue\.js App/ @@ -17,7 +17,7 @@ import Vue from 'vue'; import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src export default Vue.extend({ - name: 'Home', + name: 'HomeView', components: { HelloWorld, }, @@ -31,7 +31,7 @@ import HelloWorld from '@/components/HelloWorld.vue'; // @ is an alias to /src HelloWorld, }, }) -export default class Home extends Vue {} +export default class HomeView extends Vue {} <%_ } _%> <%# END_REPLACE %> From a4e8f256daa2096f1de3916de2a3771971678229 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Thu, 4 Nov 2021 16:54:15 +0800 Subject: [PATCH 3/3] refactor: named routes can use lower-case characters, avoiding being confused with the component names --- .../generator/template-vue3/src/router/index.js | 4 ++-- .../cli-plugin-router/generator/template/src/router/index.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/@vue/cli-plugin-router/generator/template-vue3/src/router/index.js b/packages/@vue/cli-plugin-router/generator/template-vue3/src/router/index.js index d5a35148db..7bffdad96b 100644 --- a/packages/@vue/cli-plugin-router/generator/template-vue3/src/router/index.js +++ b/packages/@vue/cli-plugin-router/generator/template-vue3/src/router/index.js @@ -14,12 +14,12 @@ import HomeView from '../views/HomeView.vue' const routes<% if (hasTypeScript) { %>: Array<% } %> = [ { path: '/', - name: 'Home', + name: 'home', component: HomeView }, { path: '/about', - name: 'About', + name: 'about', // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited. diff --git a/packages/@vue/cli-plugin-router/generator/template/src/router/index.js b/packages/@vue/cli-plugin-router/generator/template/src/router/index.js index e8bd01de31..53d728e3d9 100644 --- a/packages/@vue/cli-plugin-router/generator/template/src/router/index.js +++ b/packages/@vue/cli-plugin-router/generator/template/src/router/index.js @@ -15,12 +15,12 @@ const routes = [ <%_ } _%> { path: '/', - name: 'Home', + name: 'home', component: HomeView }, { path: '/about', - name: 'About', + name: 'about', // route level code-splitting // this generates a separate chunk (about.[hash].js) for this route // which is lazy-loaded when the route is visited.