我有这个带有多行参数和单体返回的函数(因为它们很长)。这是一个普通的 JS 文件:const myFunction = ( looooooooongParam1, looooooooongParam2, looooooooongParam3, looooooooongParam4,) => ( looooooooongParam1 + looooooooongParam2 + looooooooongParam3 + looooooooongParam4 + looooooooongParam4);ESLint 格式化错误地将返回的行向右移动。然后它抱怨缩进是错误的(当然是!):我的 ESLint 规则是:module.exports = { env: { browser: true, es2020: true, }, extends: [ 'plugin:react/recommended', 'airbnb', 'plugin:@typescript-eslint/eslint-recommended', 'plugin:@typescript-eslint/recommended', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 11, sourceType: 'module', }, plugins: [ 'react', '@typescript-eslint', ], rules: { 'react/jsx-filename-extension': [2, { extensions: ['.js', '.jsx', '.ts', '.tsx'] }], 'react/jsx-indent': ['error', 4], indent: ['error', 4], 'import/extensions': [ 'error', 'ignorePackages', { js: 'never', jsx: 'never', ts: 'never', tsx: 'never', mjs: 'never', }, ], 'no-unused-vars': 'off', '@typescript-eslint/no-unused-vars': 'error', }, settings: { 'import/resolver': { node: { extensions: [ '.js', '.jsx', '.ts', '.tsx', ], }, }, },};我在保存时使用 VSCode 并使用 eslint 格式化。VSCode相关设置:有什么想法可以让 ESLint 将返回行保持在左侧吗?编辑 1:在 VSCode 中保存文件时,我看到代码正确缩进了 0.2 秒,然后缩进不正确。编辑 2:如果我的参数较少,在一行中,缩进效果很好,所以只有在多行参数时才会发生这种情况;.
1 回答
繁星淼淼
TA贡献1775条经验 获得超11个赞
在我手动运行eslint --fix
该文件后,我注意到它工作正常,所以我发现VSCode 有它自己的格式化程序并且与 ESLint 正在做的事情重叠。
解决方案:我不得不"javascript.format.enable": false
禁用 VSCode 的 JS 格式化程序来格式化我的 JS 文件,只让 ESLint 执行它。
注意:同样的故事适用于 TSX 文件,我不得不"typescript.format.enable": false
让 ESLint 只格式化 TSX 代码。
添加回答
举报
0/150
提交
取消