refactor: update package.json and improve ESLint configuration
- Removed outdated Vue CLI plugins and added new ESLint rules and plugins for better TypeScript support. - Enhanced ESLint configuration with parser options and overrides for Vue files. feat: refactor router configuration for improved readability - Reformatted router configuration for better structure and clarity. - Ensured consistent use of async component imports and updated route definitions. chore: update TypeScript configuration for better compatibility - Adjusted tsconfig.json to target ES2020 and include necessary libraries. - Added a new tsconfig.node.json for Node.js specific configurations. fix: update Vite configuration for proper asset handling - Modified vite.config.js to specify input for Rollup, ensuring correct asset management.
This commit is contained in:
132
.eslintrc.js
132
.eslintrc.js
@@ -1,72 +1,66 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
root: true, // 停止在父级目录中寻找
|
root: true,
|
||||||
env: {
|
env: {
|
||||||
es6: true, // 启用 ES6 语法支持以及新的 ES6 全局变量或类型
|
se6: true,
|
||||||
node: true, // Node.js 全局变量和 Node.js 作用域
|
node: true,
|
||||||
},
|
},
|
||||||
extends: ['plugin:vue/essential'],
|
extends: ["plugin:vue/essential"],
|
||||||
rules: {
|
rules: {
|
||||||
'no-alert': 0, // 禁止使用alert confirm prompt
|
"no-alert": 0, // 禁止使用alert confirm prompt
|
||||||
'no-console': 0, // 禁止使用console
|
"no-console": 0, // 禁止使用console
|
||||||
'no-debugger': 0, // 禁止使用debugger
|
"no-debugger": 0, // 禁止使用debugger
|
||||||
'prefer-const': 0, // 建议使用 const 关闭
|
"prefer-const": 0, // 建议使用 const 关闭
|
||||||
'no-dupe-keys': 2, // 在创建对象字面量时不允许键重复 {a:1,a:1}
|
"no-dupe-keys": 2, // 在创建对象字面量时不允许键重复 {a:1,a:1}
|
||||||
'no-dupe-args': 2, // 函数参数不能重复
|
"no-dupe-args": 2, // 函数参数不能重复
|
||||||
'no-duplicate-imports': [
|
"no-duplicate-imports": [
|
||||||
1,
|
1,
|
||||||
{
|
|
||||||
includeExports: true
|
|
||||||
}
|
|
||||||
], // 不允许重复导入
|
|
||||||
|
|
||||||
'no-duplicate-case': 2, // switch中的case标签不能重复
|
|
||||||
'padded-blocks': 0, // 块语句内行首行尾是否要空行
|
|
||||||
'space-after-keywords': [0, 'always'], // 关键字后面是否要空一格
|
|
||||||
'space-before-blocks': [0, 'always'], // 不以新行开始的块{前面要不要有空格
|
|
||||||
'space-before-function-paren': [0, 'always'], // 函数定义时括号前面要不要有空格
|
|
||||||
'space-in-parens': [0, 'never'], // 小括号里面要不要有空格
|
|
||||||
'space-infix-ops': 0, // 中缀操作符周围要不要有空格
|
|
||||||
eqeqeq: 0, // 必须使用全等
|
|
||||||
'no-var': 0, // 禁用var,用let和const代替
|
|
||||||
'no-inline-comments': 0, // 禁止行内备注
|
|
||||||
indent: 0,
|
|
||||||
'vue/script-indent': 0,
|
|
||||||
'vue/require-prop-type-constructor': 0,
|
|
||||||
'vue/no-use-v-if-with-v-for': 0,
|
|
||||||
'no-trailing-spaces': 0, // 一行结束后面不要有空格
|
|
||||||
'no-multiple-empty-lines': 0, // [1, {"max": 2}],空行最多不能超过2行
|
|
||||||
'no-extra-boolean-cast': 0, // 禁止不必要的bool转换
|
|
||||||
'valid-jsdoc': 0,
|
|
||||||
'one-var': 0, // 连续声明
|
|
||||||
semi: 0, // 语句强制分号结尾
|
|
||||||
'semi-spacing': [0, { before: false, after: true }], // 分号前后空格
|
|
||||||
'no-new': 0, // 禁止在使用new构造一个实例后不赋值
|
|
||||||
'no-extra-semi': 0, // 禁止多余的冒号
|
|
||||||
'keyword-spacing': 0,
|
|
||||||
'arrow-parens': 0, // 箭头函数用小括号括起来 - 关闭
|
|
||||||
'generator-star-spacing': 0, // 生成器函数*的前后空格
|
|
||||||
'no-mixed-operators': 0,
|
|
||||||
'eol-last': 0, // 文件以单一的换行符结束 - 关闭
|
|
||||||
'object-curly-spacing': 0, // 大括号内是否允许不必要的空格
|
|
||||||
'no-callback-literal': 0,
|
|
||||||
'multiline-ternary': 0,
|
|
||||||
'no-self-assign':'off',
|
|
||||||
'vue/multi-word-component-names': "off",
|
|
||||||
"vue/no-v-model-argument": "off",
|
|
||||||
},
|
|
||||||
plugins:[
|
|
||||||
'vue'
|
|
||||||
],
|
|
||||||
parserOptions: {
|
|
||||||
parser: 'babel-eslint',
|
|
||||||
"requireConfigFile": false,
|
|
||||||
},
|
|
||||||
overrides: [
|
|
||||||
{
|
{
|
||||||
files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
|
includeExports: true,
|
||||||
env: {
|
},
|
||||||
jest: true
|
], // 不允许重复导入
|
||||||
}
|
|
||||||
|
"no-duplicate-case": 2, // switch中的case标签不能重复
|
||||||
|
"padded-blocks": 0, // 块语句内行首行尾是否要空行
|
||||||
|
"space-after-keywords": [0, "always"], // 关键字后面是否要空一格
|
||||||
|
"space-before-blocks": [0, "always"], // 不以新行开始的块{前面要不要有空格
|
||||||
|
"space-before-function-paren": [0, "always"], // 函数定义时括号前面要不要有空格
|
||||||
|
"space-in-parens": [0, "never"], // 小括号里面要不要有空格
|
||||||
|
"space-infix-ops": 0, // 中缀操作符周围要不要有空格
|
||||||
|
eqeqeq: 0, // 必须使用全等
|
||||||
|
"no-var": 0, // 禁用var,用let和const代替
|
||||||
|
"no-inline-comments": 0, // 禁止行内备注
|
||||||
|
indent: 0,
|
||||||
|
"vue/script-indent": 0,
|
||||||
|
"vue/require-prop-type-constructor": 0,
|
||||||
|
"vue/no-use-v-if-with-v-for": 0,
|
||||||
|
"no-trailing-spaces": 0, // 一行结束后面不要有空格
|
||||||
|
"no-multiple-empty-lines": 0, // [1, {"max": 2}],空行最多不能超过2行
|
||||||
|
"no-extra-boolean-cast": 0, // 禁止不必要的bool转换
|
||||||
|
"valid-jsdoc": 0,
|
||||||
|
"one-var": 0, // 连续声明
|
||||||
|
semi: 0, // 语句强制分号结尾
|
||||||
|
"semi-spacing": [0, { before: false, after: true }], // 分号前后空格
|
||||||
|
"no-new": 0, // 禁止在使用new构造一个实例后不赋值
|
||||||
|
"no-extra-semi": 0, // 禁止多余的冒号
|
||||||
|
"keyword-spacing": 0,
|
||||||
|
"arrow-parens": 0, // 箭头函数用小括号括起来 - 关闭
|
||||||
|
"generator-star-spacing": 0, // 生成器函数*的前后空格
|
||||||
|
"no-mixed-operators": 0,
|
||||||
|
"eol-last": 0, // 文件以单一的换行符结束 - 关闭
|
||||||
|
"object-curly-spacing": 0, // 大括号内是否允许不必要的空格
|
||||||
|
"no-callback-literal": 0,
|
||||||
|
"multiline-ternary": 0,
|
||||||
|
"no-self-assign": "off",
|
||||||
|
"vue/multi-word-component-names": "off",
|
||||||
|
"vue/no-v-model-argument": "off",
|
||||||
|
},
|
||||||
|
plugins:['vue'],
|
||||||
|
overrides: [
|
||||||
|
{
|
||||||
|
files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
|
||||||
|
env: {
|
||||||
|
jest: true
|
||||||
}
|
}
|
||||||
]
|
}
|
||||||
};
|
]s
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
presets: [
|
|
||||||
'@vue/cli-plugin-babel/preset'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
8733
package-lock.json
generated
8733
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
40
package.json
40
package.json
@@ -48,42 +48,56 @@
|
|||||||
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
"@typescript-eslint/eslint-plugin": "^5.4.0",
|
||||||
"@typescript-eslint/parser": "^5.4.0",
|
"@typescript-eslint/parser": "^5.4.0",
|
||||||
"@vitejs/plugin-vue": "^5.2.4",
|
"@vitejs/plugin-vue": "^5.2.4",
|
||||||
"@vue/cli-plugin-babel": "~5.0.0",
|
|
||||||
"@vue/cli-plugin-eslint": "~5.0.0",
|
|
||||||
"@vue/cli-plugin-router": "~5.0.0",
|
|
||||||
"@vue/cli-plugin-typescript": "~5.0.0",
|
|
||||||
"@vue/cli-plugin-vuex": "~5.0.0",
|
|
||||||
"@vue/cli-service": "~5.0.0",
|
|
||||||
"@vue/eslint-config-typescript": "^9.1.0",
|
"@vue/eslint-config-typescript": "^9.1.0",
|
||||||
"babel-eslint": "^10.1.0",
|
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-plugin-vue": "^8.0.3",
|
"eslint-plugin-vue": "^8.0.3",
|
||||||
"less": "^4.1.3",
|
"less": "^4.1.3",
|
||||||
"less-loader": "^11.0.0",
|
"less-loader": "^11.0.0",
|
||||||
"style-resources-loader": "^1.5.0",
|
|
||||||
"typescript": "~4.5.5",
|
"typescript": "~4.5.5",
|
||||||
"unplugin-auto-import": "^19.3.0",
|
"unplugin-auto-import": "^19.3.0",
|
||||||
"unplugin-element-plus": "^0.8.0",
|
"unplugin-element-plus": "^0.8.0",
|
||||||
"unplugin-vue-components": "^28.7.0",
|
"unplugin-vue-components": "^28.7.0",
|
||||||
"vite": "^6.3.5",
|
"vite": "^6.3.5",
|
||||||
"vite-plugin-svg-icons": "^2.0.1",
|
"vite-plugin-svg-icons": "^2.0.1",
|
||||||
"vue-cli-plugin-style-resources-loader": "^0.1.5",
|
|
||||||
"vue-lazyload": "^3.0.0-rc.2"
|
"vue-lazyload": "^3.0.0-rc.2"
|
||||||
},
|
},
|
||||||
"eslintConfig": {
|
"eslintConfig": {
|
||||||
"root": true,
|
"root": true,
|
||||||
"env": {
|
"env": {
|
||||||
"node": true
|
"node": true,
|
||||||
|
"browser": true,
|
||||||
|
"es2021": true
|
||||||
},
|
},
|
||||||
"extends": [
|
"extends": [
|
||||||
"plugin:vue/vue3-essential",
|
"plugin:vue/vue3-essential",
|
||||||
"eslint:recommended",
|
"eslint:recommended",
|
||||||
"@vue/typescript/recommended"
|
"@vue/typescript/recommended"
|
||||||
],
|
],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
"parserOptions": {
|
"parserOptions": {
|
||||||
"ecmaVersion": 2020
|
"ecmaVersion": 2020,
|
||||||
|
"sourceType": "module"
|
||||||
},
|
},
|
||||||
"rules": {}
|
"plugins": [
|
||||||
|
"@typescript-eslint",
|
||||||
|
"vue"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
|
"@typescript-eslint/no-unused-vars": "off",
|
||||||
|
"vue/multi-word-component-names": "off"
|
||||||
|
},
|
||||||
|
"overrides": [
|
||||||
|
{
|
||||||
|
"files": [
|
||||||
|
"*.vue"
|
||||||
|
],
|
||||||
|
"parser": "vue-eslint-parser",
|
||||||
|
"parserOptions": {
|
||||||
|
"parser": "@typescript-eslint/parser"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"> 1%",
|
"> 1%",
|
||||||
@@ -91,4 +105,4 @@
|
|||||||
"not dead",
|
"not dead",
|
||||||
"not ie 11"
|
"not ie 11"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,433 +1,475 @@
|
|||||||
import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory } from 'vue-router'
|
import {
|
||||||
import { defineAsyncComponent } from 'vue'
|
createRouter,
|
||||||
import store from "@/store"
|
createWebHistory,
|
||||||
|
RouteRecordRaw,
|
||||||
|
createWebHashHistory,
|
||||||
|
} from "vue-router";
|
||||||
|
import { defineAsyncComponent } from "vue";
|
||||||
|
import store from "@/store";
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
import { Https } from "@/tool/https";
|
import { Https } from "@/tool/https";
|
||||||
import { getCookie, setCookie } from "@/tool/cookie";
|
import { getCookie, setCookie } from "@/tool/cookie";
|
||||||
const _import = (path: string) => () => import(`../views/${path}.vue`);
|
const _import = (path: string) => () => import(`../views/${path}.vue`);
|
||||||
const _import_component = (path : string) => () => import(`../component/${path}`);
|
const _import_component = (path: string) => () =>
|
||||||
const _import_custom = (path : string) => () => import(`../views/${path}`);
|
import(`../component/${path}`);
|
||||||
|
const _import_custom = (path: string) => () => import(`../views/${path}`);
|
||||||
// defineAsyncComponent(import(`../views/${path}.vue`))
|
// defineAsyncComponent(import(`../views/${path}.vue`))
|
||||||
const routes: Array<RouteRecordRaw> = [
|
const routes: Array<RouteRecordRaw> = [
|
||||||
{
|
{
|
||||||
path: "/",
|
path: "/",
|
||||||
// redirect重定向
|
// redirect重定向
|
||||||
meta:{enter:'all',},
|
meta: { enter: "all" },
|
||||||
redirect: "/Square"
|
redirect: "/Square",
|
||||||
// redirect: "/upgrade"
|
// redirect: "/upgrade"
|
||||||
|
},
|
||||||
},
|
{
|
||||||
{
|
path: "/login",
|
||||||
path: '/login',
|
name: "login",
|
||||||
name: 'login',
|
meta: { enter: "all" },
|
||||||
meta:{enter:'all',},
|
component: _import("Login"),
|
||||||
component: _import('Login')
|
// component: _import('LoginPage')
|
||||||
// component: _import('LoginPage')
|
},
|
||||||
},{
|
{
|
||||||
path: '/schoolLogin',
|
path: "/schoolLogin",
|
||||||
name: 'schoolLogin',
|
name: "schoolLogin",
|
||||||
meta:{enter:'all',},
|
meta: { enter: "all" },
|
||||||
component: _import('LoginPageSchool')
|
component: _import("LoginPageSchool"),
|
||||||
},{
|
},
|
||||||
path: '/enterpriseLogin',
|
{
|
||||||
name: 'enterpriseLogin',
|
path: "/enterpriseLogin",
|
||||||
meta:{enter:'all',},
|
name: "enterpriseLogin",
|
||||||
component: _import('LoginPageEnterprise')
|
meta: { enter: "all" },
|
||||||
},
|
component: _import("LoginPageEnterprise"),
|
||||||
{
|
},
|
||||||
path: '/test',
|
{
|
||||||
name: 'test1',
|
path: "/test",
|
||||||
meta:{enter:'all',},
|
name: "test1",
|
||||||
component: _import('test')
|
meta: { enter: "all" },
|
||||||
},
|
component: _import("test"),
|
||||||
{
|
},
|
||||||
path: '/register',
|
{
|
||||||
name: 'register',
|
path: "/register",
|
||||||
meta:{enter:'all',},
|
name: "register",
|
||||||
component: _import('Register')
|
meta: { enter: "all" },
|
||||||
},
|
component: _import("Register"),
|
||||||
{
|
},
|
||||||
path: '/upgrade',
|
{
|
||||||
name: 'upgrade',
|
path: "/upgrade",
|
||||||
meta:{enter:'all',},
|
name: "upgrade",
|
||||||
component: _import('Upgrade'),
|
meta: { enter: "all" },
|
||||||
},
|
component: _import("Upgrade"),
|
||||||
{
|
},
|
||||||
path: '/home',
|
{
|
||||||
name: 'home',
|
path: "/home",
|
||||||
meta:{enter:'all',},
|
name: "home",
|
||||||
component: _import('HomeMain'),
|
meta: { enter: "all" },
|
||||||
children:[
|
component: _import("HomeMain"),
|
||||||
// {
|
children: [
|
||||||
// path: "",
|
// {
|
||||||
// name:'HomeChil',
|
// path: "",
|
||||||
// redirect: "/home/homePage"
|
// name:'HomeChil',
|
||||||
// },
|
// redirect: "/home/homePage"
|
||||||
{
|
// },
|
||||||
path:'tools',
|
{
|
||||||
name:'tools',
|
path: "tools",
|
||||||
meta:{enter:'all',},
|
name: "tools",
|
||||||
component: _import_custom('HomeView/Tools.vue'),
|
meta: { enter: "all" },
|
||||||
},{
|
component: _import_custom("HomeView/Tools.vue"),
|
||||||
path:'homePage',
|
},
|
||||||
name:'homePage',
|
{
|
||||||
meta:{enter:'all',},
|
path: "homePage",
|
||||||
component: _import_custom('HomeView/HomeView.vue'),
|
name: "homePage",
|
||||||
},{
|
meta: { enter: "all" },
|
||||||
path:'library',
|
component: _import_custom("HomeView/HomeView.vue"),
|
||||||
name:'library',
|
},
|
||||||
meta:{enter:'all',},
|
{
|
||||||
component: _import_custom('HomeView/library.vue'),
|
path: "library",
|
||||||
},{
|
name: "library",
|
||||||
path:'history',
|
meta: { enter: "all" },
|
||||||
name:'history',
|
component: _import_custom("HomeView/library.vue"),
|
||||||
meta:{enter:'all',},
|
},
|
||||||
component: _import_custom('HomeView/history.vue'),
|
{
|
||||||
},{
|
path: "history",
|
||||||
path:'works',
|
name: "history",
|
||||||
name:'works',
|
meta: { enter: "all" },
|
||||||
meta:{enter:'all',},
|
component: _import_custom("HomeView/history.vue"),
|
||||||
component: _import_custom('HomeView/Works.vue'),
|
},
|
||||||
},{
|
{
|
||||||
path:'events',
|
path: "works",
|
||||||
name:'events',
|
name: "works",
|
||||||
meta:{enter:'all',},
|
meta: { enter: "all" },
|
||||||
component: _import_custom('HomeView/Events.vue'),
|
component: _import_custom("HomeView/Works.vue"),
|
||||||
},{
|
},
|
||||||
path:'cloud',
|
{
|
||||||
name:'cloud',
|
path: "events",
|
||||||
meta:{enter:'all',},
|
name: "events",
|
||||||
component: _import_custom('HomeView/cloudGeneration.vue'),
|
meta: { enter: "all" },
|
||||||
},{
|
component: _import_custom("HomeView/Events.vue"),
|
||||||
path:'eventsDetail',
|
},
|
||||||
name:'eventsDetail',
|
{
|
||||||
meta:{enter:'all',},
|
path: "cloud",
|
||||||
component: _import_component('Events/eventsDetail.vue'),
|
name: "cloud",
|
||||||
},{
|
meta: { enter: "all" },
|
||||||
path:'account',
|
component: _import_custom("HomeView/cloudGeneration.vue"),
|
||||||
name:'account',
|
},
|
||||||
meta:{enter:'all',},
|
{
|
||||||
component: _import_component('Account/account.vue'),
|
path: "eventsDetail",
|
||||||
children:[
|
name: "eventsDetail",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path: "",
|
component: _import_component("Events/eventsDetail.vue"),
|
||||||
name:'accountChil',
|
},
|
||||||
meta:{enter:'all',},
|
{
|
||||||
redirect: "/home/account/frontPage"
|
path: "account",
|
||||||
},
|
name: "account",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path:'frontPage',
|
component: _import_component("Account/account.vue"),
|
||||||
name:'frontPage',
|
children: [
|
||||||
meta:{enter:'all',},
|
{
|
||||||
component: _import_component('Account/frontPage.vue'),
|
path: "",
|
||||||
},
|
name: "accountChil",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path:'accountMessage',
|
redirect: "/home/account/frontPage",
|
||||||
name:'accountMessage',
|
},
|
||||||
meta:{enter:'all',},
|
{
|
||||||
component: _import_component('Account/accountMessage.vue'),
|
path: "frontPage",
|
||||||
},
|
name: "frontPage",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path:'accountFollowFans',
|
component: _import_component("Account/frontPage.vue"),
|
||||||
name:'accountFollowFans',
|
},
|
||||||
meta:{enter:'all',},
|
{
|
||||||
component: _import_component('Account/accountFollowFans.vue'),
|
path: "accountMessage",
|
||||||
}
|
name: "accountMessage",
|
||||||
]
|
meta: { enter: "all" },
|
||||||
},{
|
component: _import_component("Account/accountMessage.vue"),
|
||||||
path:'otherUsers',
|
},
|
||||||
name:'otherUsers',
|
{
|
||||||
meta:{enter:'all',},
|
path: "accountFollowFans",
|
||||||
component: _import_component('Account/otherUsers.vue'),
|
name: "accountFollowFans",
|
||||||
}
|
meta: { enter: "all" },
|
||||||
]
|
component: _import_component("Account/accountFollowFans.vue"),
|
||||||
},
|
},
|
||||||
{
|
],
|
||||||
path: '/Square',
|
},
|
||||||
name: "HomeRecommend",
|
{
|
||||||
meta:{enter:'all',},
|
path: "otherUsers",
|
||||||
component: _import('HomeRecommend'),
|
name: "otherUsers",
|
||||||
},
|
meta: { enter: "all" },
|
||||||
{
|
component: _import_component("Account/otherUsers.vue"),
|
||||||
path: '/administrator',
|
},
|
||||||
name: 'administrator',
|
],
|
||||||
meta:{enter:3,},
|
},
|
||||||
component: _import('Administrator'),
|
{
|
||||||
children:[
|
path: "/Square",
|
||||||
|
name: "HomeRecommend",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path:'allUser',
|
component: _import("HomeRecommend"),
|
||||||
name:'allUser',
|
},
|
||||||
meta:{enter:3,},
|
{
|
||||||
component: _import_component('Administrator/allUser.vue'),
|
path: "/administrator",
|
||||||
},
|
name: "administrator",
|
||||||
{
|
meta: { enter: 3 },
|
||||||
path:'coupons',
|
component: _import("Administrator"),
|
||||||
name:'coupons',
|
children: [
|
||||||
meta:{enter:3,},
|
{
|
||||||
component: _import_component('Administrator/coupons/index.vue'),
|
path: "allUser",
|
||||||
},
|
name: "allUser",
|
||||||
{
|
meta: { enter: 3 },
|
||||||
path:'testClickData',
|
component: _import_component("Administrator/allUser.vue"),
|
||||||
name:'testClickData',
|
},
|
||||||
meta:{enter:3,},
|
{
|
||||||
component: _import_component('Administrator/TestClickData.vue'),
|
path: "coupons",
|
||||||
},
|
name: "coupons",
|
||||||
{
|
meta: { enter: 3 },
|
||||||
path:'trialApproval',
|
component: _import_component("Administrator/coupons/index.vue"),
|
||||||
name:'trialApproval',
|
},
|
||||||
meta:{enter:3,},
|
{
|
||||||
component: _import_component('Administrator/trialApproval.vue'),
|
path: "testClickData",
|
||||||
},{
|
name: "testClickData",
|
||||||
path:'questionnaire',
|
meta: { enter: 3 },
|
||||||
name:'questionnaire',
|
component: _import_component("Administrator/TestClickData.vue"),
|
||||||
meta:{enter:3,},
|
},
|
||||||
component: _import_component('Administrator/questionnaire.vue'),
|
{
|
||||||
},{
|
path: "trialApproval",
|
||||||
path:'recentActiveChart',
|
name: "trialApproval",
|
||||||
name:'recentActiveChart',
|
meta: { enter: 3 },
|
||||||
meta:{enter:3,},
|
component: _import_component("Administrator/trialApproval.vue"),
|
||||||
component: _import_component('Administrator/recentActiveChart.vue'),
|
},
|
||||||
},{
|
{
|
||||||
path:'recentActiveUser',
|
path: "questionnaire",
|
||||||
name:'recentActiveUser',
|
name: "questionnaire",
|
||||||
meta:{enter:3,},
|
meta: { enter: 3 },
|
||||||
component: _import_component('Administrator/recentActiveUser.vue'),
|
component: _import_component("Administrator/questionnaire.vue"),
|
||||||
},{
|
},
|
||||||
path:'recentActiveUserChart',
|
{
|
||||||
name:'recentActiveUserChart',
|
path: "recentActiveChart",
|
||||||
meta:{enter:3,},
|
name: "recentActiveChart",
|
||||||
component: _import_component('Administrator/recentActiveUserChart.vue'),
|
meta: { enter: 3 },
|
||||||
},{
|
component: _import_component("Administrator/recentActiveChart.vue"),
|
||||||
path:'recentNewUser',
|
},
|
||||||
name:'recentNewUser',
|
{
|
||||||
meta:{enter:3,},
|
path: "recentActiveUser",
|
||||||
component: _import_component('Administrator/recentNewUser.vue'),
|
name: "recentActiveUser",
|
||||||
},{
|
meta: { enter: 3 },
|
||||||
path:'recentNewUserChart',
|
component: _import_component("Administrator/recentActiveUser.vue"),
|
||||||
name:'recentNewUserChart',
|
},
|
||||||
meta:{enter:3,},
|
{
|
||||||
component: _import_component('Administrator/recentNewUserChart.vue'),
|
path: "recentActiveUserChart",
|
||||||
},{
|
name: "recentActiveUserChart",
|
||||||
path:'trialUserCountry',
|
meta: { enter: 3 },
|
||||||
name:'trialUserCountry',
|
component: _import_component("Administrator/recentActiveUserChart.vue"),
|
||||||
meta:{enter:3,},
|
},
|
||||||
component: _import_component('Administrator/trialUserCountry.vue'),
|
{
|
||||||
},{
|
path: "recentNewUser",
|
||||||
path:'trialUserConversionRateChart',
|
name: "recentNewUser",
|
||||||
name:'trialUserConversionRateChart',
|
meta: { enter: 3 },
|
||||||
meta:{enter:3,},
|
component: _import_component("Administrator/recentNewUser.vue"),
|
||||||
component: _import_component('Administrator/trialUserConversionRateChart.vue'),
|
},
|
||||||
},{
|
{
|
||||||
path:'trialAllUser',
|
path: "recentNewUserChart",
|
||||||
name:'trialAllUser',
|
name: "recentNewUserChart",
|
||||||
meta:{enter:3,},
|
meta: { enter: 3 },
|
||||||
component: _import_component('Administrator/trialAllUser.vue'),
|
component: _import_component("Administrator/recentNewUserChart.vue"),
|
||||||
},{
|
},
|
||||||
path:'affiliateAudit',
|
{
|
||||||
name:'affiliateAudit',
|
path: "trialUserCountry",
|
||||||
meta:{enter:3,},
|
name: "trialUserCountry",
|
||||||
component: _import_component('Administrator/affiliate/affiliateAudit.vue'),
|
meta: { enter: 3 },
|
||||||
},{
|
component: _import_component("Administrator/trialUserCountry.vue"),
|
||||||
path:'TransactionTable',
|
},
|
||||||
name:'TransactionTable',
|
{
|
||||||
meta:{enter:3,},
|
path: "trialUserConversionRateChart",
|
||||||
component: _import_component('Administrator/Transaction/TransactionTable.vue'),
|
name: "trialUserConversionRateChart",
|
||||||
},{
|
meta: { enter: 3 },
|
||||||
path:'organization',
|
component: _import_component(
|
||||||
name:'organization',
|
"Administrator/trialUserConversionRateChart.vue"
|
||||||
meta:{enter:3,},
|
),
|
||||||
component: _import_component('Administrator/organization/organization.vue'),
|
},
|
||||||
},
|
{
|
||||||
//企业版教育管理员页面
|
path: "trialAllUser",
|
||||||
{
|
name: "trialAllUser",
|
||||||
path:'allUserSE',
|
meta: { enter: 3 },
|
||||||
name:'allUserSE',
|
component: _import_component("Administrator/trialAllUser.vue"),
|
||||||
meta:{enter:3,},
|
},
|
||||||
component: _import_component('Administrator/SE/allUser/index.vue'),
|
{
|
||||||
},
|
path: "affiliateAudit",
|
||||||
{
|
name: "affiliateAudit",
|
||||||
path:'testClickDataSE',
|
meta: { enter: 3 },
|
||||||
name:'testClickDataSE',
|
component: _import_component(
|
||||||
meta:{enter:3,},
|
"Administrator/affiliate/affiliateAudit.vue"
|
||||||
component: _import_component('Administrator/SE/designDetailList/index.vue'),
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path:'generateFrequencySE',
|
path: "TransactionTable",
|
||||||
name:'generateFrequencySE',
|
name: "TransactionTable",
|
||||||
meta:{enter:3,},
|
meta: { enter: 3 },
|
||||||
component: _import_component('Administrator/SE/getGenerateFrequency/index.vue'),
|
component: _import_component(
|
||||||
},
|
"Administrator/Transaction/TransactionTable.vue"
|
||||||
]
|
),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/paySucceed',
|
path: "organization",
|
||||||
name: 'paySucceed',
|
name: "organization",
|
||||||
meta:{
|
meta: { enter: 3 },
|
||||||
enter:'all',
|
component: _import_component(
|
||||||
},
|
"Administrator/organization/organization.vue"
|
||||||
component: _import('paySucceed')
|
),
|
||||||
},
|
},
|
||||||
{
|
//企业版教育管理员页面
|
||||||
path: '/affiliate',
|
{
|
||||||
name: 'affiliate',
|
path: "allUserSE",
|
||||||
meta:{
|
name: "allUserSE",
|
||||||
enter:2,
|
meta: { enter: 3 },
|
||||||
},
|
component: _import_component("Administrator/SE/allUser/index.vue"),
|
||||||
component: _import('affiliate/affiliatePage'),
|
},
|
||||||
children:[
|
{
|
||||||
{
|
path: "testClickDataSE",
|
||||||
path: "/affiliate",
|
name: "testClickDataSE",
|
||||||
name:'affiliateHome',
|
meta: { enter: 3 },
|
||||||
meta:{
|
component: _import_component(
|
||||||
enter:2,
|
"Administrator/SE/designDetailList/index.vue"
|
||||||
},
|
),
|
||||||
component: _import_component('affiliate/home'),
|
},
|
||||||
},
|
{
|
||||||
]
|
path: "generateFrequencySE",
|
||||||
},{
|
name: "generateFrequencySE",
|
||||||
path: '/affiliateRegister',
|
meta: { enter: 3 },
|
||||||
name: 'affiliateRegister',
|
component: _import_component(
|
||||||
meta:{
|
"Administrator/SE/getGenerateFrequency/index.vue"
|
||||||
enter:'all',
|
),
|
||||||
},
|
},
|
||||||
component: _import('affiliate/affiliateRegister'),
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/setIdentification',
|
path: "/paySucceed",
|
||||||
name: 'setIdentification',
|
name: "paySucceed",
|
||||||
meta:{
|
meta: {
|
||||||
enter:'all',
|
enter: "all",
|
||||||
},
|
},
|
||||||
component: _import('setIdentification')
|
component: _import("paySucceed"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/feedbackSurvey',
|
path: "/affiliate",
|
||||||
name: 'feedbackSurvey',
|
name: "affiliate",
|
||||||
meta:{
|
meta: {
|
||||||
enter:'all',
|
enter: 2,
|
||||||
},
|
},
|
||||||
component: _import('feedbackSurvey'),
|
component: _import("affiliate/affiliatePage"),
|
||||||
},
|
children: [
|
||||||
{
|
{
|
||||||
path: '/feedbackSurveyCN',
|
path: "/affiliate",
|
||||||
name: 'feedbackSurveyCN',
|
name: "affiliateHome",
|
||||||
meta:{
|
meta: {
|
||||||
enter:'all',
|
enter: 2,
|
||||||
},
|
},
|
||||||
component: _import('feedbackSurveyCN'),
|
component: _import_component("affiliate/home"),
|
||||||
},
|
},
|
||||||
{
|
],
|
||||||
path: '/404',
|
},
|
||||||
name: '404',
|
{
|
||||||
meta:{
|
path: "/affiliateRegister",
|
||||||
enter:'all',
|
name: "affiliateRegister",
|
||||||
},
|
meta: {
|
||||||
component: _import('404')
|
enter: "all",
|
||||||
},
|
},
|
||||||
{
|
component: _import("affiliate/affiliateRegister"),
|
||||||
path: "/:catchAll(.*)",
|
},
|
||||||
redirect: "/404",
|
{
|
||||||
},
|
path: "/setIdentification",
|
||||||
|
name: "setIdentification",
|
||||||
]
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: _import("setIdentification"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/feedbackSurvey",
|
||||||
|
name: "feedbackSurvey",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: _import("feedbackSurvey"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/feedbackSurveyCN",
|
||||||
|
name: "feedbackSurveyCN",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: _import("feedbackSurveyCN"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/404",
|
||||||
|
name: "404",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: _import("404"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/:catchAll(.*)",
|
||||||
|
redirect: "/404",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(process.env.BASE_URL),
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
// history: createWebHashHistory(),
|
// history: createWebHashHistory(),
|
||||||
routes
|
routes,
|
||||||
})
|
});
|
||||||
// 刷新保存数据-
|
// 刷新保存数据-
|
||||||
let state:any = store.state
|
let state: any = store.state;
|
||||||
window.addEventListener("beforeunload", (e) => {
|
window.addEventListener("beforeunload", (e) => {
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
"vuex_setUserDetail",
|
"vuex_setUserDetail",
|
||||||
JSON.stringify(state.UserHabit.userDetail)
|
JSON.stringify(state.UserHabit.userDetail)
|
||||||
);
|
);
|
||||||
|
|
||||||
});
|
});
|
||||||
var vuex_setUserDetail:any = localStorage.getItem("vuex_setUserDetail");
|
var vuex_setUserDetail: any = localStorage.getItem("vuex_setUserDetail");
|
||||||
if (vuex_setUserDetail) {
|
if (vuex_setUserDetail) {
|
||||||
if(JSON.parse(vuex_setUserDetail).email != '-------------'){
|
if (JSON.parse(vuex_setUserDetail).email != "-------------") {
|
||||||
store.commit("setUserDetail", JSON.parse(vuex_setUserDetail));
|
store.commit("setUserDetail", JSON.parse(vuex_setUserDetail));
|
||||||
}
|
}
|
||||||
// localStorage.removeItem("vuex_setUserDetail");
|
// localStorage.removeItem("vuex_setUserDetail");
|
||||||
}
|
}
|
||||||
|
|
||||||
let setMurmur = (id:any)=> {
|
let setMurmur = (id: any) => {
|
||||||
let murmurStr: any = localStorage.getItem('murmurStr')
|
let murmurStr: any = localStorage.getItem("murmurStr");
|
||||||
// let isSxis = false
|
// let isSxis = false
|
||||||
let data = {
|
let data = {
|
||||||
browserIdentifiers: murmurStr,
|
browserIdentifiers: murmurStr,
|
||||||
id:id
|
id: id,
|
||||||
}
|
};
|
||||||
if(data.id){
|
if (data.id) {
|
||||||
Https.axiosPost(Https.httpUrls.noLoginRequired, data)
|
Https.axiosPost(Https.httpUrls.noLoginRequired, data)
|
||||||
.then((rv) => {
|
.then((rv) => {
|
||||||
let isTest = rv.systemUser == 3 ? true : false
|
let isTest = rv.systemUser == 3 ? true : false;
|
||||||
let isBeginner = rv.isBeginner == 1 ? true : false
|
let isBeginner = rv.isBeginner == 1 ? true : false;
|
||||||
setCookie("isMurmur", true);
|
setCookie("isMurmur", true);
|
||||||
setCookie("token", rv.token);
|
setCookie("token", rv.token);
|
||||||
setCookie("isTest", isTest);
|
setCookie("isTest", isTest);
|
||||||
setCookie("isBeginner", isBeginner);
|
setCookie("isBeginner", isBeginner);
|
||||||
setCookie("isBeginnerNum", 0);//从第一步开始,机器人开始的话就是从第二部开始
|
setCookie("isBeginnerNum", 0); //从第一步开始,机器人开始的话就是从第二部开始
|
||||||
setCookie("userInfo", JSON.stringify(rv));
|
setCookie("userInfo", JSON.stringify(rv));
|
||||||
let userid = {
|
let userid = {
|
||||||
ueserId:rv.userId,
|
ueserId: rv.userId,
|
||||||
systemUser:rv.systemUser
|
systemUser: rv.systemUser,
|
||||||
}
|
};
|
||||||
store.commit("upUserDetail", userid);
|
store.commit("upUserDetail", userid);
|
||||||
sessionStorage.setItem('isTimeOne', JSON.stringify(false));//是否需要公告 提示 弹窗
|
sessionStorage.setItem("isTimeOne", JSON.stringify(false)); //是否需要公告 提示 弹窗
|
||||||
let randomNum: any = Math.floor(Math.random() * 9000000000000000) + 1000000000000000;
|
let randomNum: any =
|
||||||
sessionStorage.setItem('sessionId', randomNum);
|
Math.floor(Math.random() * 9000000000000000) + 1000000000000000;
|
||||||
router.push("/home");
|
sessionStorage.setItem("sessionId", randomNum);
|
||||||
|
router.push("/home");
|
||||||
})
|
})
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
// router.push('/Square')
|
// router.push('/Square')
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
const setViewsIncrease = (value:any)=>{
|
const setViewsIncrease = (value: any) => {
|
||||||
sessionStorage.setItem('affiliateRef', value);
|
sessionStorage.setItem("affiliateRef", value);
|
||||||
let data = {
|
let data = {
|
||||||
id:value
|
id: value,
|
||||||
}
|
};
|
||||||
Https.axiosGet(Https.httpUrls.viewsIncrease,{params:data}).then((rv)=>{})
|
Https.axiosGet(Https.httpUrls.viewsIncrease, { params: data }).then(
|
||||||
}
|
(rv) => {}
|
||||||
let upgradeList = ['/feedbackSurvey','/feedbackSurveyCN','emailVerify']//指定页面系统维护也可以访问
|
);
|
||||||
router.beforeEach((to:any, from, next) => {
|
};
|
||||||
// 系统维护
|
let upgradeList = ["/feedbackSurvey", "/feedbackSurveyCN", "emailVerify"]; //指定页面系统维护也可以访问
|
||||||
// const toName = to.name === 'upgrade';
|
router.beforeEach((to: any, from, next) => {
|
||||||
// if(upgradeList.indexOf(to.path) > -1){
|
// 系统维护
|
||||||
// next();
|
// const toName = to.name === 'upgrade';
|
||||||
// }else{
|
// if(upgradeList.indexOf(to.path) > -1){
|
||||||
// if (toName) {
|
// next();
|
||||||
// next();
|
// }else{
|
||||||
// } else {
|
// if (toName) {
|
||||||
// next({ name: 'upgrade' });
|
// next();
|
||||||
// }
|
// } else {
|
||||||
// }
|
// next({ name: 'upgrade' });
|
||||||
// return
|
// }
|
||||||
// 机房用户
|
// }
|
||||||
let herfData = window.location.search.substring(1)
|
// return
|
||||||
if(herfData.split('=')[0] == 'noLogin' && to.name != 'homePage'){
|
// 机房用户
|
||||||
setMurmur(herfData.split('=')[1])
|
let herfData = window.location.search.substring(1);
|
||||||
return
|
if (herfData.split("=")[0] == "noLogin" && to.name != "homePage") {
|
||||||
}
|
setMurmur(herfData.split("=")[1]);
|
||||||
let affiliateRef = sessionStorage.getItem('affiliateRef');
|
return;
|
||||||
if(to.query.order)sessionStorage.setItem('orderId', to.query.order);//记录是否点击跳转订单链接
|
}
|
||||||
if(to.query.ref && affiliateRef != to.query.ref)setViewsIncrease(to.query.ref)
|
let affiliateRef = sessionStorage.getItem("affiliateRef");
|
||||||
|
if (to.query.order) sessionStorage.setItem("orderId", to.query.order); //记录是否点击跳转订单链接
|
||||||
if(to.meta.enter == 'all'){
|
if (to.query.ref && affiliateRef != to.query.ref)
|
||||||
next();
|
setViewsIncrease(to.query.ref);
|
||||||
}else if(state.UserHabit.userDetail.systemList.indexOf(to.meta.enter) > -1){
|
|
||||||
next()
|
|
||||||
}else{
|
|
||||||
next('/404');
|
|
||||||
}
|
|
||||||
// if(systemUser == 0){//游客用户只能进入这两个页面
|
|
||||||
|
|
||||||
|
if (to.meta.enter == "all") {
|
||||||
|
next();
|
||||||
|
} else if (
|
||||||
|
state.UserHabit.userDetail.systemList.indexOf(to.meta.enter) > -1
|
||||||
|
) {
|
||||||
|
next();
|
||||||
|
} else {
|
||||||
|
next("/404");
|
||||||
|
}
|
||||||
|
// if(systemUser == 0){//游客用户只能进入这两个页面
|
||||||
});
|
});
|
||||||
|
|
||||||
export default router
|
export default router;
|
||||||
|
|||||||
57
src/shims-vue.d.ts
vendored
57
src/shims-vue.d.ts
vendored
@@ -1,21 +1,38 @@
|
|||||||
/* eslint-disable */
|
/// <reference types="vite/client" />
|
||||||
declare module '*.vue' {
|
|
||||||
import type { DefineComponent } from 'vue'
|
declare module "*.vue" {
|
||||||
const component: DefineComponent<{}, {}, any>
|
import type { DefineComponent } from "vue";
|
||||||
export default component
|
const component: DefineComponent<{}, {}, any>;
|
||||||
|
export default component;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImportMetaEnv {
|
||||||
|
readonly VITE_APP_TITLE: string;
|
||||||
|
readonly VITE_APP_BASE_URL: string;
|
||||||
|
readonly BASE_URL: string;
|
||||||
|
// 更多环境变量...
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ImportMeta {
|
||||||
|
readonly env: ImportMetaEnv;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 第三方库声明
|
||||||
|
declare module "@ans1998/vue3-color";
|
||||||
|
declare module "three";
|
||||||
|
declare module "three/examples/jsm/controls/OrbitControls";
|
||||||
|
declare module "three/examples/jsm/postprocessing/EffectComposer";
|
||||||
|
declare module "three/examples/jsm/postprocessing/RenderPass";
|
||||||
|
declare module "three/examples/jsm/postprocessing/OutlinePass";
|
||||||
|
|
||||||
|
// 全局变量声明
|
||||||
|
declare global {
|
||||||
|
var ColorThief: any;
|
||||||
|
var EyeDropper: any;
|
||||||
|
interface Window {
|
||||||
|
ColorThief: any;
|
||||||
|
EyeDropper: any;
|
||||||
|
google: any;
|
||||||
|
gc?: () => void;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// declare module '@vue/runtime-core' {
|
|
||||||
// //全局this注册方法或者公用属性
|
|
||||||
// interface ComponentCustomProperties {
|
|
||||||
// // 调整成你要使用到的属性,在这里进行注册
|
|
||||||
// // GO: any
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
declare module '@ans1998/vue3-color'
|
|
||||||
declare var ColorThief: any;
|
|
||||||
declare var EyeDropper: any;
|
|
||||||
declare module 'three'
|
|
||||||
declare module 'OrbitControls'
|
|
||||||
declare module 'EffectComposer'
|
|
||||||
declare module 'RenderPass'
|
|
||||||
declare module 'OutlinePass'
|
|
||||||
|
|||||||
@@ -1,49 +1,53 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "esnext",
|
"target": "ES2020",
|
||||||
"module": "esnext",
|
"useDefineForClassFields": true,
|
||||||
"strict": true,
|
"lib": [
|
||||||
"jsx": "preserve",
|
"ES2020",
|
||||||
"moduleResolution": "node",
|
"DOM",
|
||||||
"experimentalDecorators": true,
|
"DOM.Iterable"
|
||||||
"skipLibCheck": true,
|
],
|
||||||
"esModuleInterop": true,
|
"module": "ESNext",
|
||||||
"allowSyntheticDefaultImports": true,
|
"skipLibCheck": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
/* Bundler mode */
|
||||||
"useDefineForClassFields": true,
|
"moduleResolution": "bundler",
|
||||||
"resolveJsonModule": true,//引入json文件
|
"allowImportingTsExtensions": true,
|
||||||
"esModuleInterop": true,//引入json文件
|
"resolveJsonModule": true,
|
||||||
"sourceMap": true,
|
"isolatedModules": true,
|
||||||
"allowJs": true, //编译时允许有js
|
"noEmit": true,
|
||||||
"baseUrl": ".",
|
"jsx": "preserve",
|
||||||
"outDir": "./",
|
/* Linting */
|
||||||
"types": [
|
"strict": true,
|
||||||
"webpack-env"
|
"noUnusedLocals": false,
|
||||||
|
"noUnusedParameters": false,
|
||||||
|
"noFallthroughCasesInSwitch": true,
|
||||||
|
/* Path mapping */
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@/*": [
|
||||||
|
"src/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
/* Additional options for Vue 3 */
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"emitDecoratorMetadata": true
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*.ts",
|
||||||
|
"src/**/*.d.ts",
|
||||||
|
"src/**/*.tsx",
|
||||||
|
"src/**/*.vue"
|
||||||
],
|
],
|
||||||
"paths": {
|
"exclude": [
|
||||||
"@/*": [
|
"node_modules",
|
||||||
"src/*"
|
"dist"
|
||||||
],
|
],
|
||||||
"three/ *": ["three/addons/postprocessing/*"]
|
"references": [
|
||||||
},
|
{
|
||||||
"lib": [
|
"path": "./tsconfig.node.json"
|
||||||
"esnext",
|
}
|
||||||
"dom",
|
|
||||||
"dom.iterable",
|
|
||||||
"scripthost"
|
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"include": [
|
|
||||||
"src/**/*.ts",
|
|
||||||
"src/**/*.tsx",
|
|
||||||
"src/**/*.vue",
|
|
||||||
"tests/**/*.ts",
|
|
||||||
"tests/**/*.tsx",
|
|
||||||
"src/**/*.js",
|
|
||||||
"src/**/*.svg",
|
|
||||||
"src/**/*.gif",
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"node_modules"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
12
tsconfig.node.json
Normal file
12
tsconfig.node.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "bundler",
|
||||||
|
"allowSyntheticDefaultImports": true
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"vite.config.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -97,6 +97,7 @@ export default defineConfig(({ mode }) => {
|
|||||||
assetsDir: "assets",
|
assetsDir: "assets",
|
||||||
// 分包策略
|
// 分包策略
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
|
input: path.resolve(__dirname, "public/index.html"),
|
||||||
output: {
|
output: {
|
||||||
manualChunks: {
|
manualChunks: {
|
||||||
vendor: ["vue", "vue-router", "vuex"],
|
vendor: ["vue", "vue-router", "vuex"],
|
||||||
|
|||||||
Reference in New Issue
Block a user