build(deps): 配置cz

master
xing 2 years ago
parent 3a803cabef
commit a33f0f6d5d
  1. 92
      .cz-config.js
  2. 28486
      package-lock.json
  3. 8
      package.json
  4. 4
      src/api/interceptor.ts
  5. 2
      src/components/menu/use-menu-tree.ts
  6. 4
      src/router/app-menus/index.ts
  7. 8
      src/router/routes/index.ts
  8. 28
      src/router/routes/modules/shop.ts
  9. 11
      src/views/shop/index.vue
  10. 15594
      yarn.lock

@ -0,0 +1,92 @@
module.exports = {
// type 类型(定义之后,可通过上下键选择)
types: [
{ value: 'feat', name: 'feat: 新增功能' },
{ value: 'fix', name: 'fix: 修复 bug' },
{ value: 'docs', name: 'docs: 文档变更' },
{
value: 'style',
name: 'style: 代码格式(不影响功能,例如空格、分号等格式修正)',
},
{
value: 'refactor',
name: 'refactor: 代码重构(不包括 bug 修复、功能新增)',
},
{ value: 'perf', name: 'perf: 性能优化' },
// {value: 'test', name: 'test: 添加、修改测试用例'},
{
value: 'build',
name: 'build: 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)',
},
{ value: 'ci', name: 'ci: 修改 CI 配置、脚本' },
{
value: 'chore',
name: 'chore: 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)',
},
{ value: 'revert', name: 'revert: 回滚 commit' },
],
// scope 类型(定义之后,可通过上下键选择)
scopes: [
['components', '组件相关'],
['hooks', 'hook 相关'],
['utils', 'utils 相关'],
// ['element-ui', '对 element-ui 的调整'],
['styles', '样式相关'],
['deps', '项目依赖'],
['auth', '对 auth 修改'],
['other', '其他修改'],
// 如果选择 custom,后面会让你再输入一个自定义的 scope。也可以不设置此项,把后面的 allowCustomScopes 设置为 true
['custom', '以上都不是?我要自定义'],
].map(([value, description]) => {
return {
value,
name: `${value.padEnd(30)} (${description})`,
};
}),
// 是否允许自定义填写 scope,在 scope 选择的时候,会有 empty 和 custom 可以选择。
// allowCustomScopes: true,
// allowTicketNumber: false,
// isTicketNumberRequired: false,
// ticketNumberPrefix: 'TICKET-',
// ticketNumberRegExp: '\\d{1,5}',
// 针对每一个 type 去定义对应的 scopes,例如 fix
/*
scopeOverrides: {
fix: [
{ name: 'merge' },
{ name: 'style' },
{ name: 'e2eTest' },
{ name: 'unitTest' }
]
},
*/
// 交互提示信息
messages: {
type: '确保本次提交遵循 Angular 规范!\n选择你要提交的类型:',
scope: '\n选择一个 scope(可选):',
// 选择 scope: custom 时会出下面的提示
customScope: '请输入自定义的 scope:',
subject: '填写简短精炼的变更描述:\n',
body: '填写更加详细的变更描述(可选)。使用 "|" 换行:\n',
breaking: '列举非兼容性重大的变更(可选):\n',
// footer: '列举出所有变更的 ISSUES CLOSED(可选)。 例如: #31, #34:\n',
confirmCommit: '确认提交?',
},
// 设置只有 type 选择了 feat 或 fix,才询问 breaking message
allowBreakingChanges: ['feat', 'fix'],
// 跳过要询问的步骤
// skipQuestions: ['body', 'footer'],
// subject 限制长度
subjectLimit: 100,
breaklineChar: '|', // 支持 body 和 footer
// footerPrefix : 'ISSUES CLOSED:'
// askForBreakingChangeFirst : true,
};

28486
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -59,8 +59,11 @@
"@vitejs/plugin-vue": "^4.0.0", "@vitejs/plugin-vue": "^4.0.0",
"@vitejs/plugin-vue-jsx": "^3.0.0", "@vitejs/plugin-vue-jsx": "^3.0.0",
"@vue/babel-plugin-jsx": "^1.1.1", "@vue/babel-plugin-jsx": "^1.1.1",
"commitizen": "^4.3.0",
"consola": "^2.15.3", "consola": "^2.15.3",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"cz-conventional-changelog": "^3.3.0",
"cz-customizable": "^7.0.0",
"eslint": "^8.25.0", "eslint": "^8.25.0",
"eslint-config-airbnb-base": "^15.0.0", "eslint-config-airbnb-base": "^15.0.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
@ -99,5 +102,10 @@
"bin-wrapper": "npm:bin-wrapper-china", "bin-wrapper": "npm:bin-wrapper-china",
"rollup": "^2.56.3", "rollup": "^2.56.3",
"gifsicle": "5.2.0" "gifsicle": "5.2.0"
},
"config": {
"commitizen": {
"path": "./node_modules/cz-customizable"
}
} }
} }

@ -17,10 +17,6 @@ if (import.meta.env.VITE_API_BASE_URL) {
axios.interceptors.request.use( axios.interceptors.request.use(
(config: AxiosRequestConfig) => { (config: AxiosRequestConfig) => {
// let each request carry token
// this example using the JWT token
// Authorization is a custom headers key
// please modify it according to the actual situation
const token = getToken(); const token = getToken();
if (token) { if (token) {
if (!config.headers) { if (!config.headers) {

@ -19,6 +19,7 @@ export default function useMenuTree() {
copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => { copyRouter.sort((a: RouteRecordNormalized, b: RouteRecordNormalized) => {
return (a.meta.order || 0) - (b.meta.order || 0); return (a.meta.order || 0) - (b.meta.order || 0);
}); });
function travel(_routes: RouteRecordRaw[], layer: number) { function travel(_routes: RouteRecordRaw[], layer: number) {
if (!_routes) return null; if (!_routes) return null;
@ -60,6 +61,7 @@ export default function useMenuTree() {
}); });
return collector.filter(Boolean); return collector.filter(Boolean);
} }
return travel(copyRouter, 0); return travel(copyRouter, 0);
}); });

@ -1,6 +1,6 @@
import { appRoutes, appExternalRoutes } from '../routes'; import { appRoutes } from '../routes';
const mixinRoutes = [...appRoutes, ...appExternalRoutes]; const mixinRoutes = [...appRoutes];
const appClientMenus = mixinRoutes.map((el) => { const appClientMenus = mixinRoutes.map((el) => {
const { name, path, meta, redirect, children } = el; const { name, path, meta, redirect, children } = el;

@ -1,9 +1,6 @@
import type { RouteRecordNormalized } from 'vue-router'; import type { RouteRecordNormalized } from 'vue-router';
const modules = import.meta.glob('./modules/*.ts', { eager: true }); const modules = import.meta.glob('./modules/*.ts', { eager: true });
const externalModules = import.meta.glob('./externalModules/*.ts', {
eager: true,
});
function formatModules(_modules: any, result: RouteRecordNormalized[]) { function formatModules(_modules: any, result: RouteRecordNormalized[]) {
Object.keys(_modules).forEach((key) => { Object.keys(_modules).forEach((key) => {
@ -19,7 +16,4 @@ function formatModules(_modules: any, result: RouteRecordNormalized[]) {
export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []); export const appRoutes: RouteRecordNormalized[] = formatModules(modules, []);
export const appExternalRoutes: RouteRecordNormalized[] = formatModules( export const a = 1;
externalModules,
[]
);

@ -0,0 +1,28 @@
import { AppRouteRecordRaw } from '@/router/routes/types';
import { DEFAULT_LAYOUT } from '@/router/routes/base';
const SHOP: AppRouteRecordRaw = {
path: '/shop',
name: 'shop',
component: DEFAULT_LAYOUT,
meta: {
locale: '产品',
requiresAuth: true,
icon: 'icon-folder',
order: 0,
},
children: [
{
path: 'index',
name: 'shopIndex',
component: () => import('@/views/shop/index.vue'),
meta: {
locale: '产品',
requiresAuth: true,
roles: ['*'],
},
},
],
};
export default SHOP;

@ -0,0 +1,11 @@
<template>
<div>djaklf</div>
</template>
<script>
export default {
name: 'Index',
};
</script>
<style scoped></style>

15594
yarn.lock

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save