NodeJS 是否可以使用Husky + lint stages来检查Console.logs?

afdcj2ne  于 2023-02-03  发布在  Node.js
关注(0)|答案(4)|浏览(148)

只是想知道是否有可能使用husky/lint stages在预提交期间检查控制台日志,如果有控制台日志则会失败?我找不到任何特定于控制台日志的东西。

gfttwv5a

gfttwv5a1#

在我的vue项目中,我是这样使用的。
eslintrc.js:

module.exports = {
      extends: ['./.eslintrc.js'], // it contains other rules
      rules: {
        'no-console': 'error',
      },
    };

huskyrc.js:

module.exports = {
      hooks: {
        'pre-commit': 'lint-staged'
      }
    }

以及包json:

"scripts": {
      "lint:eslint": "eslint --ext .js,.vue --ignore-path .gitignore --ignore-path .eslintignore .",
    },
    "lint-staged": {
    "*.{js,vue}": [
      "npm run lint:eslint"
    ],
  }

编辑:你还需要安装"lint-staged"包。

7uzetpgm

7uzetpgm2#

这将验证您的代码中是否有一些console.log。
在你.eslintrc里放了这个家伙

"no-console": "error",

在赫斯基的档案里

{
      "hooks": {
        "pre-commit": "lint-staged",
        "pre-push": "yarn test:coverage"
      }
    }
3zwtqj6y

3zwtqj6y3#

您可以通过两种方式来执行此操作:
1.在***. eslintrc.js***文件中:

module.exports = {
      plugins: ["security"],
      rules: {
        "no-console": ENV === "production" ? "error" : "off",
        "no-debugger": ENV === "production" ? "error" : "off"
      }
    }

1.在.git/hooks/pre-commit文件中:
你可以粘贴此代码www.example.comhttps://gist.github.com/guilherme/9604324#file-gistfile1-sh

Difference is that you can commit *.eslintrc.js* file but *pre-commit* is only for you.
nwo49xxi

nwo49xxi4#

不确定这是否对任何人有帮助,但是如果您不想经历掉毛的麻烦,有一个简单的package.json技巧。
我让husky运行pnpm precommit作为钩子。我在那里运行类型检查和测试。
我刚刚加了一个脚本:

"nologs": "[ $(git diff \"origin/$(git branch --show)\" | egrep '^[+]' | egrep 'console[.]log' | wc -l) -ge 1 ] && exit 10 || exit 0",

如果你在任何地方添加“console.log”,这将退出并阻止你提交。
我的预提交钩子是:

"precommit": "pnpm nologs && pnpm types && pnpm test"

这可能也适用于npm/yarn,只要做一些调整。
我的两分钱;)

相关问题