赫斯基给出错误SyntaxError:在严格模式下使用const

Jit*_*yas 3 git node.js stylelint husky lint-staged

我正在使用赫斯基Lint-stagedStylelint

  "scripts": {
    "precommit": "lint-staged",

  },
  "lint-staged": {
    "*.scss": ["stylelint --syntax scss"
    ]
  },
Run Code Online (Sandbox Code Playgroud)

OS - 最新的OSX

节点 - 6.10.0

NPM - 3.10.00

我收到了这个错误 git commit

> husky - npm run -s precommit

/Users/jitendravyas/app/node_modules/lint-staged/src/index.js:6
const path = require('path')
^^^^^
SyntaxError: Use of const in strict mode.
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/jitendravyas/app/node_modules/lint-staged/index.js:2:1)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)

> husky - pre-commit hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run precommit'
Run Code Online (Sandbox Code Playgroud)

小智 6

我使用节点7.10.0并遇到了同样的问题.我发现一个问题记录在它的回购中,mmoutenot发布了一个有趣的回复让我思考,所以我进一步研究并找到了解决方案!

赫斯基假设每个人都使用nvm来管理节点版本,并在NVM_DIR(设置为$HOME/.nvm)下查找它,或者如果安装了brew BREW_NVM_DIR(设置为/usr/local/opt/nvm)

如果存在任一路径,则使用load_nvm加载节点版本.

当我最初开始使用Node时,我确实使用了nvm,但后来继续使用n并且没有意识到.nvm没有在主目录下清理,因此它指向了旧版本的node(0.12.7) -导致上述错误.

如果您仍在使用nvm来管理节点版本,请确保您更新到支持ES6功能的节点版本(const在本例中).

如果您不使用nvm,请确保nvm在上述路径中不可用.赫斯基在这种情况下最终使用当前版本(即6.10.0在您的情况下)

或者,您可以尝试mmoutenot赫斯基问题上提到的解决方案