0

我的 package.json(缩短版)

  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "tsc": "tsc",
    "type-check": "tsc --project tsconfig.json --pretty --noEmit",
    "lint": "eslint --ext js,jsx,ts,tsx --fix"
  },
  "dependencies": {
    "@types/node": "^14.14.25",
    "@types/react": "^17.0.1",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-react-hooks": "^4.2.0",
    "next": "^10.0.6",
    "react": "^17.0.1",
    "react-dom": "^17.0.1",
    "typescript": "^4.1.4"
  },  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": "eslint --cache --fix"
  }

我用 npm(不是纱线)安装了所有东西。当我添加空文件并提交时

git commit -m "test"
[main ca9db77] test
 1 file changed, 4 insertions(+)
 create mode 100644 pages/test.tsx

没有棉绒分期,所以看不到哈士奇。如何解决这个问题?

4

1 回答 1

1

您必须将 husky 安装为 DevDependencies

然后创建一个prepare脚本husky install

"scripts": {
    "dev": "next dev",
    "build": "cross-env NODE_ENV=production next build",
    "start": "next start",
    "lint": "eslint src --max-warnings=0",
    "typecheck": "tsc --project tsconfig.json --pretty --noEmit",
    "test": "jest",
    "test:watch": "yarn test --watch",
    "prepare": "husky install"
  }

并运行一次:npm run prepare

然后,添加一个钩子: npx husky add .husky/pre-commit "npm test"

打开.husky\pre-commit

并添加npx --no-install lint-staged

您的文件应如下所示:

#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

npx --no-install lint-staged

package.json创建lint-staged密钥时,就像您所做的那样。

"lint-staged": {
    "src/**/*": [
      "yarn lint --fix",
      "tsc-files --noEmit --pretty",
      "yarn test --findRelatedTests --bail"
    ]
  },
于 2021-08-27T14:55:15.853 回答