0

这是我的配置

包.json

{
    "name": "hello-world",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        "react": "^16.8.6",
        "react-dom": "^16.8.6",
        "react-scripts": "3.0.1"
    },
    "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "react-scripts test",
        "eject": "react-scripts eject"
    },
    "husky": {
        "hooks": {
            "pre-commit": "lint-staged"
        }
    },
    "lint-staged": {
        "*.js": [
            "eslint --fix",
            "git add"
        ],
        "*.{js, jsx, json, html, css}": [
            "prettier --write",
            "git add"
        ]
    },
    "eslintConfig": {
        "extends": "react-app"
    },
    "browserslist": {
        "production": [
            ">0.2%",
            "not dead",
            "not op_mini all"
        ],
        "development": [
            "last 1 chrome version",
            "last 1 firefox version",
            "last 1 safari version"
        ]
    },
    "devDependencies": {
        "eslint": "^5.16.0",
        "eslint-config-prettier": "^6.0.0",
        "eslint-plugin-prettier": "^3.1.0",
        "husky": "^3.0.0",
        "lint-staged": "^9.2.0",
        "prettier": "^1.18.2"
    }
}

现在,如果我只是在像这样的项目上运行它./node_modules/.bin/eslint .,它就会像往常一样工作。显示需要在文件中进行的更改,但不能用作预提交挂钩,但 prettier 正在工作。我仍然看到 eslint 在每次从命令行提交之前运行,但我没有看到任何输出。可能是什么问题?

  • 将行更改为eslint * --fix, 显示了要在所有文件中进行的修复,甚至是.css.md文件。
  • 让它eslint *.js --fix告诉我,没有找到与该模式匹配的文件。
  • 甚至eslint . --fix不起作用。

如果需要该信息,我的文件夹结构是一种简单的 create-react-app 格式。完整的回购在这里

我也会在下面发布 eslintrc 和 prettierrc 文件,

.prettierrc

{
"singleQuote": false
}

.eslintrc

{
"extends": ["react-app", "prettier"],
"plugins": ["prettier"],
"rules": {
"prettier/prettier": "error"
}
}

说明:

1)我不得不使用更长格式版本的更漂亮的配置,而不是plugin:prettier/recommended因为我在尝试使用单独的 prettierrc 配置文件而不是将其内联在 package.json 时遇到了这个错误

2) 我不得不使用较低版本的 eslint,因为较新的版本会从普通的 create-react-app 中抛出随机错误,因此必须按照此处讨论的方式对其进行降级

4

1 回答 1

0

您是否尝试在您的 中使用上述短绒的完整路径package.json

像这样的东西-

"lint-staged": {
    "*.{js,tsx}": [
        "./node_modules/.bin/eslint --fix",
        "git add"
    ],
    "*.{js, jsx, json, html, css}": [
        "./node_modules/.bin/prettier --write",
        "git add"
    ]
}

对我来说,它按预期工作。

参考教程

于 2019-11-28T09:37:15.287 回答