自学内容网 自学内容网

怎么关闭vscode中的保存自动格式化,在当前工作区

背景

最近在处理一些问题上,因为自动保存格式化的功能,将前人的文件(没有git管理)保存了一下【没有更改过代码】,然后项目一直报错,这个时候大部分人会像博主一样,开始怀疑别人的代码出现了问题,历经了十几个小时的断点调试,终于在某个地方发现了不太合理的地方,
于是,开启了代码比对工具,果然,复制保存后的代码,跟前人的代码有一些区别,而这个区别就是由于vscode安装了eslint工具之后,配置了格式化的规则,并且在编辑器配置中开启了lint自动修复(这个真的会很坑)

现象

由于自动修复规则,它会把前人不按照lint格式写的代码,给他修复成合理的代码,

这个动作中,会夹杂着代码的去除或者新增,很有可能就会导致出现各种各样奇怪的bug,这里举两个常见的例子

  1. 在return语句后面写了代码
(() => {
  return 123;
  let a, b, c; // 开启格式化,这个代码保存的时候,就会被删除
)()
  1. 在useEffect、useCallback等有依赖项的钩子,但是缺少了一些依赖项没写,刚好没有触发一些副作用
useEffect(() => { 
console.log(state); 
// 其他的一些状态值和状态函数
// 这里缺少了一些项
}, [state])

后果

以上在特殊情况下,都会导致代码不能够正常运行,造成长时间的阻塞,长时间的调试,太崩溃。。。。

解决方案

在当前工程中增加.vscode目录,然后新建settings.json文件
增加如下配置:

"editor.codeActionsOnSave": {
    "source.fixAll.tslint": "never",
    "source.fixAll.eslint": "never",
    "source.fixAll.stylelint": "never",
    "source.fixAll": "never"
  },

注意!!!!

这跟你工程中的eslint、prettier相关性不大,就算在ignore文件中忽略了对应的目录,保存的时候,还是会自动修复,因为这个配置是我们eslint插件的活(它属于vscode编辑器的插件,不是我们代码中工程的eslint)

当然,一部分小伙伴应该还不知道这个配置,如果大家想反其道而行之,
可以配置如下:就会开启自动保存时,修复格式。

"editor.codeActionsOnSave": {
    "source.fixAll.tslint": "explicit",
    "source.fixAll.eslint": "explicit",
    "source.fixAll.stylelint": "explicit",
    "source.fixAll": "explicit"
  },

如果以上文档,有帮助到大家,记得帮博主点赞支持!!!


原文地址:https://blog.csdn.net/qq_36579455/article/details/143953169

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!