perf: Use Imports Instead of Aliases

This commit is contained in:
vben 2024-06-16 23:40:52 +08:00
parent 07d1f85ff7
commit 6ffec31ce8
19 changed files with 41 additions and 140 deletions

View File

@ -21,6 +21,9 @@
"preview": "vite preview",
"typecheck": "vue-tsc --noEmit --skipLibCheck"
},
"imports": {
"#/*": "./src/*"
},
"dependencies": {
"@vben-core/helpers": "workspace:*",
"@vben-core/preferences": "workspace:*",

View File

@ -2,7 +2,7 @@ import type { UserInfo } from '@vben/types';
import type { UserApiType } from '../types';
import { request } from '@/forward';
import { request } from '#/forward';
/**
*

View File

@ -4,7 +4,7 @@ import { setupI18n } from '@vben/locales';
import '@vben/styles';
import { preferences } from '@vben-core/preferences';
import { setupStore } from '@/store';
import { setupStore } from '#/store';
import App from './app.vue';
import { router } from './router';

View File

@ -9,9 +9,9 @@ import { useAccessStore } from '@vben-core/stores';
import { useTitle } from '@vueuse/core';
import { dynamicRoutes, essentialsRouteNames } from '@/router/routes';
import { dynamicRoutes, essentialsRouteNames } from '#/router/routes';
const forbiddenPage = () => import('@/views/_essential/fallback/forbidden.vue');
const forbiddenPage = () => import('#/views/_essential/fallback/forbidden.vue');
/**
*

View File

@ -3,13 +3,12 @@ import type { RouteRecordRaw } from 'vue-router';
import { DEFAULT_HOME_PATH } from '@vben/constants';
import { $t } from '@vben/locales';
import { AuthPageLayoutType } from '@/layouts';
import Login from '@/views/_essential/authentication/login.vue';
import { AuthPageLayoutType } from '#/layouts';
import Login from '#/views/_essential/authentication/login.vue';
/** 全局404页面 */
const fallbackNotFoundRoute: RouteRecordRaw = {
component: () => import('@/views/_essential/fallback/not-found.vue'),
component: () => import('#/views/_essential/fallback/not-found.vue'),
meta: {
hideInBreadcrumb: true,
hideInMenu: true,
@ -50,7 +49,7 @@ const essentialsRoutes: RouteRecordRaw[] = [
name: 'CodeLogin',
path: 'code-login',
component: () =>
import('@/views/_essential/authentication/code-login.vue'),
import('#/views/_essential/authentication/code-login.vue'),
meta: {
title: $t('page.essentials.code-login'),
},
@ -59,7 +58,7 @@ const essentialsRoutes: RouteRecordRaw[] = [
name: 'QrCodeLogin',
path: 'qrcode-login',
component: () =>
import('@/views/_essential/authentication/qrcode-login.vue'),
import('#/views/_essential/authentication/qrcode-login.vue'),
meta: {
title: $t('page.essentials.qrcode-login'),
},
@ -68,7 +67,7 @@ const essentialsRoutes: RouteRecordRaw[] = [
name: 'ForgetPassword',
path: 'forget-password',
component: () =>
import('@/views/_essential/authentication/forget-password.vue'),
import('#/views/_essential/authentication/forget-password.vue'),
meta: {
title: $t('page.essentials.forget-password'),
},
@ -77,7 +76,7 @@ const essentialsRoutes: RouteRecordRaw[] = [
name: 'Register',
path: 'register',
component: () =>
import('@/views/_essential/authentication/register.vue'),
import('#/views/_essential/authentication/register.vue'),
meta: {
title: $t('page.essentials.register'),
},

View File

@ -1,8 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { BasicLayout } from '@/layouts';
import { $t } from '@vben/locales/helper';
import { BasicLayout } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
@ -17,7 +18,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Fallback403',
path: '403',
component: () => import('@/views/_essential/fallback/forbidden.vue'),
component: () => import('#/views/_essential/fallback/forbidden.vue'),
meta: {
icon: 'mdi:do-not-disturb-alt',
title: '403',
@ -26,7 +27,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Fallback404',
path: '404',
component: () => import('@/views/_essential/fallback/not-found.vue'),
component: () => import('#/views/_essential/fallback/not-found.vue'),
meta: {
icon: 'mdi:table-off',
title: '404',
@ -36,7 +37,7 @@ const routes: RouteRecordRaw[] = [
name: 'Fallback500',
path: '500',
component: () =>
import('@/views/_essential/fallback/internal-error.vue'),
import('#/views/_essential/fallback/internal-error.vue'),
meta: {
icon: 'mdi:server-network-off',
title: '500',
@ -45,7 +46,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'FallbackOffline',
path: 'offline',
component: () => import('@/views/_essential/fallback/offline.vue'),
component: () => import('#/views/_essential/fallback/offline.vue'),
meta: {
icon: 'mdi:offline',
title: $t('fallback.offline'),

View File

@ -1,6 +1,6 @@
import type { RouteRecordRaw } from 'vue-router';
import { BasicLayout } from '@/layouts';
import { BasicLayout } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
@ -17,7 +17,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Welcome',
path: '/welcome',
component: () => import('@/views/dashboard/index.vue'),
component: () => import('#/views/dashboard/index.vue'),
meta: {
affixTab: true,
title: 'Welcome',

View File

@ -1,8 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { BasicLayout } from '@/layouts';
import { $t } from '@vben/locales/helper';
import { BasicLayout } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
@ -19,7 +20,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Menu1',
path: 'menu1',
component: () => import('@/views/nested/menu-1.vue'),
component: () => import('#/views/nested/menu-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
@ -39,7 +40,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Menu21',
path: 'menu2-1',
component: () => import('@/views/nested/menu-2-1.vue'),
component: () => import('#/views/nested/menu-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
@ -60,7 +61,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Menu31',
path: 'menu3-1',
component: () => import('@/views/nested/menu-3-1.vue'),
component: () => import('#/views/nested/menu-3-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,
@ -79,7 +80,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'Menu321',
path: 'menu3-2-1',
component: () => import('@/views/nested/menu-3-2-1.vue'),
component: () => import('#/views/nested/menu-3-2-1.vue'),
meta: {
icon: 'ic:round-menu',
keepAlive: true,

View File

@ -1,8 +1,9 @@
import type { RouteRecordRaw } from 'vue-router';
import { BasicLayout, IFrameView } from '@/layouts';
import { $t } from '@vben/locales/helper';
import { BasicLayout, IFrameView } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,

View File

@ -2,9 +2,10 @@ import type { RouteRecordRaw } from 'vue-router';
import { VBEN_GITHUB_URL, VBEN_LOGO } from '@vben/constants';
import { BasicLayout, IFrameView } from '@/layouts';
import { $t } from '@vben/locales/helper';
import { BasicLayout, IFrameView } from '#/layouts';
const routes: RouteRecordRaw[] = [
{
component: BasicLayout,
@ -20,7 +21,7 @@ const routes: RouteRecordRaw[] = [
{
name: 'VbenAbout',
path: 'about',
component: () => import('@/views/_essential/vben/about/index.vue'),
component: () => import('#/views/_essential/vben/about/index.vue'),
meta: {
icon: 'mdi:creative-commons',
title: $t('page.vben.about'),

View File

@ -9,9 +9,10 @@ import { AuthenticationLogin } from '@vben/universal-ui';
import { useRequest } from '@vben-core/request';
import { useAccessStore } from '@vben-core/stores';
import { getUserInfo, userLogin } from '@/apis';
import { notification } from 'ant-design-vue';
import { getUserInfo, userLogin } from '#/apis';
defineOptions({ name: 'Login' });
const router = useRouter();

View File

@ -4,7 +4,7 @@
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
"#/*": ["./src/*"]
}
},
"references": [{ "path": "./tsconfig.node.json" }],

View File

@ -46,13 +46,7 @@ export async function perfectionist(): Promise<Linter.FlatConfig[]> {
'object',
'unknown',
],
'internal-pattern': [
'@/layouts/**',
'@/apis/**',
'@/forward/**',
'@/router/**',
'@/views/**',
],
'internal-pattern': ['#*', '#*/**'],
'newlines-between': 'always',
order: 'asc',
type: 'natural',

View File

@ -32,6 +32,7 @@
"@manypkg/get-packages": "^2.2.1",
"consola": "^3.2.3",
"find-up": "^7.0.0",
"nanoid": "^5.0.7",
"pkg-types": "^1.1.1",
"prettier": "^3.3.2",
"rimraf": "^5.0.7",

View File

@ -1,48 +0,0 @@
import fs from 'node:fs';
import { dirname, extname, resolve } from 'node:path';
import { findUpSync } from 'find-up';
/**
* package.json
* @param pathname
*/
function findUpPackageDir(pathname: string = '') {
const file = findUpSync('package.json', {
cwd: dirname(pathname),
type: 'file',
});
return dirname(file || '');
}
/**
*
* @param pathname
* @param extensions
* @returns null
*/
function findFileByExtension(
pathname: string = '',
extensions: string[] = ['.ts'],
): string {
if (extname(pathname)) {
return pathname;
}
for (const ext of extensions) {
const fullpath = resolve(pathname);
if (fs.existsSync(fullpath + ext) && fs.statSync(fullpath + ext).isFile()) {
return fullpath + ext;
}
}
for (const ext of extensions) {
const resultPath = resolve(pathname, `index${ext}`);
if (fs.existsSync(resultPath)) {
return resultPath;
}
}
return pathname;
}
export { findFileByExtension, findUpPackageDir };

View File

@ -1,5 +1,4 @@
export { UNICODE } from './constants';
export { findFileByExtension, findUpPackageDir } from './find';
export * from './git';
export { add as gitAdd, getStagedFiles } from './git';
export { generatorContentHash } from './hash';

View File

@ -2,8 +2,6 @@ import type { UserConfig } from 'vite';
import type { DefineApplicationOptions } from '../typing';
import { resolve } from 'node:path';
import { defineConfig, loadEnv, mergeConfig } from 'vite';
import { getApplicationConditionPlugins } from '../plugins';
@ -57,31 +55,6 @@ function defineApplicationConfig(options: DefineApplicationOptions = {}) {
legalComments: 'none',
},
plugins,
resolve: {
alias: [
{
find: /@\//,
replacement: `${resolve(root, '.', 'src')}/`,
},
/**
* 使@别名
*/
// {
// find: '@',
// replacement: '@',
// customResolver(source, importer) {
// if (source[0] === '@') {
// const realPath = source.replace(
// /^@/,
// resolve(findUpPackageDir(importer), 'src'),
// );
// return findFileByExtension(realPath);
// }
// return null;
// },
// },
],
},
server: {
host: true,
warmup: {

View File

@ -325,6 +325,9 @@ importers:
find-up:
specifier: ^7.0.0
version: 7.0.0
nanoid:
specifier: ^5.0.7
version: 5.0.7
pkg-types:
specifier: ^1.1.1
version: 1.1.1

View File

@ -1,28 +0,0 @@
// #!/bin/bash
// #/ Usage: script/update-dependencies
// #/ Create a branch to update a dependency.
// # Delete update-dependencies branch if it exists
// if git branch | grep -q "update-dependencies"; then
// echo "Deleting update-dependencies branch 🗑"
// git branch -D update-dependencies
// echo "Branch deleted 🎉"
// fi
// # Create update-dependencies branch
// echo "Creating update-dependencies branch 🌱"
// git checkout -b update-dependencies
// echo "Branch created 🎉"
// # Update dependencies in package.json
// echo "Updating dependencies in package.json 📦"
// pnpm update --interactive --recursive --latest
// # Clean up pnpm-lock.yaml file and install dependencies
// script/clean && pnpm install
// # Git operations
// git add -A
// git commit -am "chore: update dependencies 📦"
// git push origin update-dependencies
// gh pr create --fill
// echo "Dependencies updated 🎉"