如何防止我的 Vue 构建由于 Typescript 错误而失败
Posted
技术标签:
【中文标题】如何防止我的 Vue 构建由于 Typescript 错误而失败【英文标题】:How to prevent my Vue build to fail because of Typescript errors 【发布时间】:2020-11-04 19:45:37 【问题描述】:正如标题所说。我有一个使用下面的.eslintrc.js
文件运行的项目,我希望将 Typescript 错误的严重性默认为警告,因为这会阻止我的构建。我找不到有关如何定位适当规则“defaultSeverity”的参考。
我的主要目标是防止构建由于 TS 错误而失败。如果有不同的方法可以做到这一点,很高兴知道如何做到这一点。
编辑说明:我得到的错误是访问未在类型 AxiosResponse 预期响应中定义的对象属性。在我定义自己的类型或类似的东西之前,我宁愿忽略这些错误。
module.exports =
root: true,
env:
node: true
,
extends: [
'plugin:vue/essential',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier',
'@vue/prettier/@typescript-eslint'
],
plugins: ['vue'],
parserOptions:
ecmaVersion: 2020
,
rules:
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'prettier/prettier': ['warn', singleQuote: true, semi: false ],
'no-trailing-spaces': 'error'
【问题讨论】:
如何纠正错误? 你到底得到了什么错误?您无法编译有错误的脚本... 错误是关于 AxiosResponse 没有我正在访问的这个属性。但是因为我知道我有道具,所以我现在不想处理这种类型的错误,我会得到一个警告,直到我的类型都被稍后定义。由于 TS 对我来说是新的,我宁愿不处理不匹配类型错误并逐步改进我的类型定义。 另外,我可以轻松地将响应强制为“任何”并覆盖错误。但我不希望看到这些类型的错误阻止任何东西。因为我的 TS 目标更倾向于尽可能少地添加并随着时间的推移而增长。 您找到解决方案了吗? 【参考方案1】:最好尽可能多地定义类型。即使您将类型设置为“任何”。但要回复我自己的答案,可以通过在tsconfig.json
文件中设置选项"noImplicitAny": false,
来避免编译器错误。
tsconfig.json 文件示例:
"compilerOptions":
"target": "esnext",
"module": "esnext",
"strict": true,
"jsx": "preserve",
"importHelpers": true,
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"noImplicitAny": false,
"sourceMap": true,
"baseUrl": ".",
"types": [
"webpack-env",
"vuetify"
],
"paths":
"@/*": [
"src/*"
]
,
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
,
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts",
"tests/**/*.tsx"
],
"exclude": [
"node_modules"
]
【讨论】:
以上是关于如何防止我的 Vue 构建由于 Typescript 错误而失败的主要内容,如果未能解决你的问题,请参考以下文章
Vue.js:如何防止 `vue-cli-service --modern` 构建遗留包?
使用电容器在iOS应用构建中滚动时如何防止内容显示在安全区域上方?