ide:vscode
若无效可尝试删除 package.json 中的 type:module
参考
https://blog.csdn.net/weixin_44875693/article/details/124196163
模板
.prettierrc.js
module.exports = {
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"printWidth": 80,
"arrowParens": "avoid",
"trailingComma": "all"
}
.prettierignore
node_modules
dist
module.exports = {
root: true,
env: {
browser: true,
es2021: true,
node: true,
jest: true,
},
extends: [
'plugin:vue/vue3-recommended',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier',
'@vue/prettier/@typescript-eslint',
],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020,
ecmaFeatures: {
jsx: true,
tsx: true,
},
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
// prettier
'prettier/prettier': 'error',
semi: ['error', 'never'],
curly: 'off',
quotes: ['error', 'single'],
'vue/require-default-prop': 'off',
'no-restricted-syntax': ['error', 'WithStatement'],
'no-param-reassign': [
'error',
{
props: false,
},
],
'prefer-destructuring': [
'error',
{
array: true,
object: false,
},
],
'vue/html-self-closing': [
'error',
{
html: {
void: 'always',
normal: 'never',
component: 'always',
},
},
],
// typescript
'@typescript-eslint/no-use-before-define': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-function': 'off',
},
}
.eslintignore
dist
node_modules