首页 > 解决方案 > VSCode:在git staging时触发organizeImports

问题描述

我喜欢 VSCode 中的自动组织功能,但是每次保存都这样做给我带来了一些麻烦。

...
"editor.codeActionsOnSave": {
    "source.organizeImports": true
  },
...

当我暂存它们时,是否可以设置一些 git 钩子来组织导入(通过 vscode 或其他脚本/lib)?

问题

如果我在使用导入的方法之前过早地点击保存(这样做是为了一直更漂亮) - 然后它会删除它,我必须再次编写导入。

如果我破坏了代码(.jsx)并且似乎没有使用某些东西并且我点击保存(以触发更漂亮),那么它会删除导入。然后我必须再次导入它们。

标签: javascriptgitvisual-studio-codejsxgithooks

解决方案


运行时可以应用某种形式的钩子:在和中git add定义的过滤器。gitconfig.gitattributes

有关详细说明,请参阅git book 的这一部分。


以下是文档中的草图(它说明了如何配置过滤器以在*.txt文件上运行):

  • 运行时git add

应用

  • 运行时git checkout

应用

您可以在您gitconfig的过滤器中定义,该过滤器包含两个“清洁”和“涂抹”命令:

$ git config --global filter.jsximports.clean fiximports
$ git config --global filter.jsximports.smudge cat

并编辑.gitattributes文件以将此过滤器应用于 jsx 文件

*.jsx    filter=jsximports

要应用的脚本可能是tslint --fix,与ordered-imports规则

实际上 :tslint的规则似乎有自己的实现,但它做了类似的事情(见https://github.com/palantir/tslint/pull/4064

在这个答案中:https://stackoverflow.com/a/57458656/86072
用户 thorn 指向这个 npm 包:
https://www.npmjs.com/package/organize-imports-cli
从cli调用organizeImports


推荐阅读