From 46791d715e53f7e442e0c34f5e922d63dbe77f9a Mon Sep 17 00:00:00 2001 From: Haoqun Jiang <haoqunjiang@gmail.com> Date: Tue, 26 Dec 2023 15:07:33 +0800 Subject: [PATCH 1/3] feat: use package.json imports instead of `@` as alias to `src` See reasons at https://github.com/epicweb-dev/epic-stack/blob/main/docs/decisions/031-imports.md and https://github.com/vuejs/core/issues/9919 Pending https://github.com/vuejs/core/issues/9919 to be fixed Pending https://github.com/microsoft/TypeScript/pull/55015 to be released --- template/base/jsconfig.json | 3 +++ template/base/package.json | 3 +++ template/base/vite.config.js.ejs | 1 + template/code/router/src/App.vue | 2 +- template/code/typescript-router/src/App.vue | 2 +- template/config/cypress-ct/cypress/support/component.js | 2 +- template/config/cypress-ct/cypress/support/component.ts | 2 +- template/tsconfig/base/tsconfig.app.json | 3 +++ template/tsconfig/nightwatch-ct/tsconfig.app.json | 3 +++ 9 files changed, 17 insertions(+), 4 deletions(-) diff --git a/template/base/jsconfig.json b/template/base/jsconfig.json index 5a1f2d22..b5f03929 100644 --- a/template/base/jsconfig.json +++ b/template/base/jsconfig.json @@ -1,6 +1,9 @@ { "compilerOptions": { "paths": { + // TODO: no longer needed after TS 5.4 + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } }, diff --git a/template/base/package.json b/template/base/package.json index 57c2b86a..c05f39ba 100644 --- a/template/base/package.json +++ b/template/base/package.json @@ -1,6 +1,9 @@ { "private": true, "type": "module", + "imports": { + "#src/": "./src/" + }, "scripts": { "dev": "vite", "build": "vite build", diff --git a/template/base/vite.config.js.ejs b/template/base/vite.config.js.ejs index c3e65d21..a04ed073 100644 --- a/template/base/vite.config.js.ejs +++ b/template/base/vite.config.js.ejs @@ -14,6 +14,7 @@ export default defineConfig({ ], resolve: { alias: { + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) '@': fileURLToPath(new URL('./src', import.meta.url)) } } diff --git a/template/code/router/src/App.vue b/template/code/router/src/App.vue index e8641950..719e4d99 100644 --- a/template/code/router/src/App.vue +++ b/template/code/router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/code/typescript-router/src/App.vue b/template/code/typescript-router/src/App.vue index 7905b051..fe29657d 100644 --- a/template/code/typescript-router/src/App.vue +++ b/template/code/typescript-router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/config/cypress-ct/cypress/support/component.js b/template/config/cypress-ct/cypress/support/component.js index 7283cad6..9aeff110 100644 --- a/template/config/cypress-ct/cypress/support/component.js +++ b/template/config/cypress-ct/cypress/support/component.js @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '@/assets/main.css' +import '#src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/config/cypress-ct/cypress/support/component.ts b/template/config/cypress-ct/cypress/support/component.ts index 04e4c352..b2a0063d 100644 --- a/template/config/cypress-ct/cypress/support/component.ts +++ b/template/config/cypress-ct/cypress/support/component.ts @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '@/assets/main.css' +import '#src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/tsconfig/base/tsconfig.app.json b/template/tsconfig/base/tsconfig.app.json index e14c754d..59419d6d 100644 --- a/template/tsconfig/base/tsconfig.app.json +++ b/template/tsconfig/base/tsconfig.app.json @@ -8,6 +8,9 @@ "baseUrl": ".", "paths": { + // TODO: no longer needed after TS 5.4 + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } } diff --git a/template/tsconfig/nightwatch-ct/tsconfig.app.json b/template/tsconfig/nightwatch-ct/tsconfig.app.json index e14c754d..59419d6d 100644 --- a/template/tsconfig/nightwatch-ct/tsconfig.app.json +++ b/template/tsconfig/nightwatch-ct/tsconfig.app.json @@ -8,6 +8,9 @@ "baseUrl": ".", "paths": { + // TODO: no longer needed after TS 5.4 + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } } From 28b5aaf25049a4c6b5ce105a229ab89413923857 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang <haoqunjiang@gmail.com> Date: Wed, 13 Nov 2024 16:13:41 +0800 Subject: [PATCH 2/3] feat!: use `#/src` instead --- template/base/jsconfig.json | 4 ++-- template/base/package.json | 2 +- template/base/vite.config.js.ejs | 2 +- template/code/router/src/App.vue | 2 +- template/code/typescript-router/src/App.vue | 2 +- template/config/cypress-ct/cypress/support/component.js | 2 +- template/config/cypress-ct/cypress/support/component.ts | 2 +- template/tsconfig/base/tsconfig.app.json | 4 ++-- template/tsconfig/nightwatch-ct/tsconfig.app.json | 4 ++-- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/template/base/jsconfig.json b/template/base/jsconfig.json index b5f03929..4bd2b782 100644 --- a/template/base/jsconfig.json +++ b/template/base/jsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "paths": { // TODO: no longer needed after TS 5.4 - "#src/*": ["./src/*"], - // Deprecated, use `#src` instead (configured in `package.json` `imports` field) + "#/*": ["./*"], + // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } }, diff --git a/template/base/package.json b/template/base/package.json index f711a567..d00f6e14 100644 --- a/template/base/package.json +++ b/template/base/package.json @@ -2,7 +2,7 @@ "private": true, "type": "module", "imports": { - "#src/": "./src/" + "#/*": "./*" }, "scripts": { "dev": "vite", diff --git a/template/base/vite.config.js.ejs b/template/base/vite.config.js.ejs index c5cd9d2f..b148800b 100644 --- a/template/base/vite.config.js.ejs +++ b/template/base/vite.config.js.ejs @@ -14,7 +14,7 @@ export default defineConfig({ ], resolve: { alias: { - // Deprecated, use `#src` instead (configured in `package.json` `imports` field) + // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, diff --git a/template/code/router/src/App.vue b/template/code/router/src/App.vue index 719e4d99..593fb9c3 100644 --- a/template/code/router/src/App.vue +++ b/template/code/router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#/src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/code/typescript-router/src/App.vue b/template/code/typescript-router/src/App.vue index fe29657d..861bcc3c 100644 --- a/template/code/typescript-router/src/App.vue +++ b/template/code/typescript-router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#/src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/config/cypress-ct/cypress/support/component.js b/template/config/cypress-ct/cypress/support/component.js index 9aeff110..4ecfddbe 100644 --- a/template/config/cypress-ct/cypress/support/component.js +++ b/template/config/cypress-ct/cypress/support/component.js @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '#src/assets/main.css' +import '#/src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/config/cypress-ct/cypress/support/component.ts b/template/config/cypress-ct/cypress/support/component.ts index b2a0063d..3278ec0e 100644 --- a/template/config/cypress-ct/cypress/support/component.ts +++ b/template/config/cypress-ct/cypress/support/component.ts @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '#src/assets/main.css' +import '#/src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/tsconfig/base/tsconfig.app.json b/template/tsconfig/base/tsconfig.app.json index cbbfd1cf..5271be2d 100644 --- a/template/tsconfig/base/tsconfig.app.json +++ b/template/tsconfig/base/tsconfig.app.json @@ -8,8 +8,8 @@ "paths": { // TODO: no longer needed after TS 5.4 - "#src/*": ["./src/*"], - // Deprecated, use `#src` instead (configured in `package.json` `imports` field) + "#/*": ["./*"], + // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } } diff --git a/template/tsconfig/nightwatch-ct/tsconfig.app.json b/template/tsconfig/nightwatch-ct/tsconfig.app.json index cbbfd1cf..5271be2d 100644 --- a/template/tsconfig/nightwatch-ct/tsconfig.app.json +++ b/template/tsconfig/nightwatch-ct/tsconfig.app.json @@ -8,8 +8,8 @@ "paths": { // TODO: no longer needed after TS 5.4 - "#src/*": ["./src/*"], - // Deprecated, use `#src` instead (configured in `package.json` `imports` field) + "#/*": ["./*"], + // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } } From 04ec3bec6322596e067078d846f240ebddfd2fc6 Mon Sep 17 00:00:00 2001 From: Haoqun Jiang <haoqunjiang@gmail.com> Date: Wed, 13 Nov 2024 16:15:32 +0800 Subject: [PATCH 3/3] Revert "feat!: use `#/src` instead" This reverts commit 28b5aaf25049a4c6b5ce105a229ab89413923857. --- template/base/jsconfig.json | 4 ++-- template/base/package.json | 2 +- template/base/vite.config.js.ejs | 2 +- template/code/router/src/App.vue | 2 +- template/code/typescript-router/src/App.vue | 2 +- template/config/cypress-ct/cypress/support/component.js | 2 +- template/config/cypress-ct/cypress/support/component.ts | 2 +- template/tsconfig/base/tsconfig.app.json | 4 ++-- template/tsconfig/nightwatch-ct/tsconfig.app.json | 4 ++-- 9 files changed, 12 insertions(+), 12 deletions(-) diff --git a/template/base/jsconfig.json b/template/base/jsconfig.json index 4bd2b782..b5f03929 100644 --- a/template/base/jsconfig.json +++ b/template/base/jsconfig.json @@ -2,8 +2,8 @@ "compilerOptions": { "paths": { // TODO: no longer needed after TS 5.4 - "#/*": ["./*"], - // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } }, diff --git a/template/base/package.json b/template/base/package.json index d00f6e14..f711a567 100644 --- a/template/base/package.json +++ b/template/base/package.json @@ -2,7 +2,7 @@ "private": true, "type": "module", "imports": { - "#/*": "./*" + "#src/": "./src/" }, "scripts": { "dev": "vite", diff --git a/template/base/vite.config.js.ejs b/template/base/vite.config.js.ejs index b148800b..c5cd9d2f 100644 --- a/template/base/vite.config.js.ejs +++ b/template/base/vite.config.js.ejs @@ -14,7 +14,7 @@ export default defineConfig({ ], resolve: { alias: { - // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) '@': fileURLToPath(new URL('./src', import.meta.url)) }, }, diff --git a/template/code/router/src/App.vue b/template/code/router/src/App.vue index 593fb9c3..719e4d99 100644 --- a/template/code/router/src/App.vue +++ b/template/code/router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="#/src/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/code/typescript-router/src/App.vue b/template/code/typescript-router/src/App.vue index 861bcc3c..fe29657d 100644 --- a/template/code/typescript-router/src/App.vue +++ b/template/code/typescript-router/src/App.vue @@ -5,7 +5,7 @@ import HelloWorld from './components/HelloWorld.vue' <template> <header> - <img alt="Vue logo" class="logo" src="#/src/assets/logo.svg" width="125" height="125" /> + <img alt="Vue logo" class="logo" src="#src/assets/logo.svg" width="125" height="125" /> <div class="wrapper"> <HelloWorld msg="You did it!" /> diff --git a/template/config/cypress-ct/cypress/support/component.js b/template/config/cypress-ct/cypress/support/component.js index 4ecfddbe..9aeff110 100644 --- a/template/config/cypress-ct/cypress/support/component.js +++ b/template/config/cypress-ct/cypress/support/component.js @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '#/src/assets/main.css' +import '#src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/config/cypress-ct/cypress/support/component.ts b/template/config/cypress-ct/cypress/support/component.ts index 3278ec0e..b2a0063d 100644 --- a/template/config/cypress-ct/cypress/support/component.ts +++ b/template/config/cypress-ct/cypress/support/component.ts @@ -20,7 +20,7 @@ import './commands' // require('./commands') // Import global styles -import '#/src/assets/main.css' +import '#src/assets/main.css' import { mount } from 'cypress/vue' diff --git a/template/tsconfig/base/tsconfig.app.json b/template/tsconfig/base/tsconfig.app.json index 5271be2d..cbbfd1cf 100644 --- a/template/tsconfig/base/tsconfig.app.json +++ b/template/tsconfig/base/tsconfig.app.json @@ -8,8 +8,8 @@ "paths": { // TODO: no longer needed after TS 5.4 - "#/*": ["./*"], - // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } } diff --git a/template/tsconfig/nightwatch-ct/tsconfig.app.json b/template/tsconfig/nightwatch-ct/tsconfig.app.json index 5271be2d..cbbfd1cf 100644 --- a/template/tsconfig/nightwatch-ct/tsconfig.app.json +++ b/template/tsconfig/nightwatch-ct/tsconfig.app.json @@ -8,8 +8,8 @@ "paths": { // TODO: no longer needed after TS 5.4 - "#/*": ["./*"], - // Deprecated, use `#/src` instead (configured in `package.json` `imports` field) + "#src/*": ["./src/*"], + // Deprecated, use `#src` instead (configured in `package.json` `imports` field) "@/*": ["./src/*"] } }