node.js - 赫斯基给出错误 SyntaxError : Use of const in strict mode

标签 node.js git stylelint husky lint-staged

我正在使用 HuskyLint-stagedStylelint

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

  },
  "lint-staged": {
    "*.scss": ["stylelint --syntax scss"
    ]
  },

操作系统 - 最新的 OSX

Node - 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'

最佳答案

我正在使用 Node 7.10.0 并且遇到了同样的问题。我找到了 an issue logged on it's repo其中 mmoutenot发布了一个有趣的回复,这让我开始思考,所以我进一步调查并找到了解决方案!

Husky假设大家都用nvm来管理 Node 版本,在NVM_DIR下找(设置为 $HOME/.nvm)或者如果安装了 brew BREW_NVM_DIR (设置为 /usr/local/opt/nvm)

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

当我最初开始使用 Node 时,我确实使用了 nvm 但后来转向使用 n并且没有意识到 .nvm 没有在主目录下被清理所以它指向旧版本的 Node (0.12.7) - 这导致了上面提到的错误。

如果您仍在使用 nvm 来管理 Node 版本,请确保您更新到支持 ES6 功能的 Node 版本(在这种情况下为 const)。

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

或者您可以尝试 mmoutenot 的解决方案在 husky issue 上提到

关于node.js - 赫斯基给出错误 SyntaxError : Use of const in strict mode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43932038/

相关文章:

javascript - 无法使用 Node.js 解析 Firebase 的快照

javascript - WebSocket 未连接到 socket.io

node.js - 使用 Express 显示图像,而不是下载它

git - 为什么 git revert 提示缺少 -m 选项?

git - 如何从多个提交创建分支?

css stylelint 规则捕获 'selector is expected' 错误

css - 抑制 Lint 警告 : StyleLint SCSS

node.js - 如何从 Node js api 调用返回字符串

git - 在GitHub上成功创建项目,但初始推送失败: no current branch

javascript - Stylelint 作为 npm 脚本无声地失败