如何使用husky npm模块预先运行几个命令?

时间:2017-04-22 16:53:28

标签: javascript npm eslint stylelint husky

我在提交之前使用husky来检查JS。 在我的package.json中我有

"scripts": {
    "lintStyles": "stylelint app/**/*.scss",
    "fixStylesLinting": "stylelint app/**/*.scss --fix",
    "lintJS": "eslint app/**/*.js",
    "fixJSLinting": "eslint --fix app/**/*.js",
    "precommit": "npm run lintJS"
  }

它有效,我不明白的是我如何运行lintJS,lintStyles命令。

3 个答案:

答案 0 :(得分:14)

要包含多个脚本,请为{:

添加&&

precommit: npm run lint:sass && npm run lint:js

答案 1 :(得分:1)

这应该有效:

"scripts": {
  "lint:scss": "stylelint app/**/*.scss",
  "fixStylesLinting": "stylelint app/**/*.scss --fix",
  "lint:js": "eslint app/**/*.js",
  "fixJSLinting": "eslint --fix app/**/*.js",
  "precommit": "npm run lint:*"
}

答案 2 :(得分:0)

为了在单个预提交上运行多个钩子,你需要这样做

npx husky add .husky/pre-commit "npx lint-staged"

类似地为其他钩子添加:

npx husky add .husky/pre-commit "npm run ban"

使文件在 husky 文件夹中如下所示:

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

npx lint-staged
npm run ban

然后在 package.json 添加以下内容

"pre-commit": "npm run lint && npm run ban"

&& 分隔