From 46791d715e53f7e442e0c34f5e922d63dbe77f9a Mon Sep 17 00:00:00 2001 From: Haoqun Jiang Date: Tue, 26 Dec 2023 15:07:33 +0800 Subject: [PATCH] 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'