package.json
{
"name": "xxx",
"version": "1.0.0",
"scripts": {
"dev": "vite --host",
"build": "vue-tsc --noEmit && vite build",
"test": "jest --silent",
"test-coverage": "jest --coverage --silent",
"sonarqube": "sonar-scanner"
},
"dependencies": {
"axios": "^0.21.4",
"crypto-js": "^4.1.1",
"echarts": "^5.2.1",
"element-plus": "^1.1.0-beta.9",
"jest-css-modules": "^2.1.0",
"moment": "^2.29.4",
"nprogress": "^0.2.0",
"sonarqube-scanner": "2.8.1",
"vue": "^3.2.6",
"vue-router": "^4.0.12"
},
"devDependencies": {
"@babel/preset-env": "^7.15.6",
"@babel/preset-typescript": "^7.15.0",
"@types/crypto-js": "^4.0.2",
"@types/jest": "^27.0.2",
"@types/jsrsasign": "^8.0.13",
"@types/node": "^16.7.10",
"@types/nprogress": "^0.2.0",
"@typescript-eslint/eslint-plugin": "^4.31.0",
"@typescript-eslint/parser": "^4.31.0",
"@vitejs/plugin-legacy": "^1.5.3",
"@vitejs/plugin-vue": "^1.6.0",
"@vue/compiler-sfc": "^3.2.6",
"@vue/test-utils": "^2.0.0-0",
"autoprefixer": "^10.3.4",
"babel-jest": "^27.2.1",
"eslint": "^7.2.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-vue": "^7.17.0",
"jest": "^27.2.1",
"jest-transform-stub": "^2.0.0",
"jsrsasign": "^7.1.5",
"less": "^4.1.1",
"less-loader": "^6.2.0",
"prettier": "2.4.1",
"semver": "7.5.2",
"ts-jest": "^27.0.5",
"typescript": "^4.3.2",
"vite": "^2.5.2",
"vue-jest": "^5.0.0-alpha.10",
"vue-tsc": "^0.3.0",
"vue3-jest": "^27.0.0-alpha.1"
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended",
"@vue/typescript/recommended"
]
}
}
jest.config.js
module.exports = {
moduleFileExtensions: [
'js',
'ts',
'vue',
],
moduleNameMapper: {
// 解决import .css报错问题
"\\.(css|less|scss|sss|styl)$": "jest-css-modules",
// 将 @ 路径映射到 src 目录
'^@/(.*)$': '<rootDir>/src/$1'
},
transform: {
'^.+\\.jsx?$': 'babel-jest',
'^.+\\.vue?$': 'vue3-jest', // vue文件使用vue3.0的jest处理
'^.+\\.(ts|tsx)$': 'ts-jest',
'.+\\.(styl|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', // 将静态资源转换为字符
},
coveragePathIgnorePatterns: [
'<rootDir>/portal/src/router/.*',
],
// testMatch: [' **/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
testMatch: ['**/utils/proTable.spec.ts'],
testEnvironment: 'jsdom',
collectCoverageFrom: [
"**/components/ProTable/index.vue",
// "**/main.ts",
// "!**/node_modules/**"
]
};