Хаски дает ошибку SyntaxError: Использование const в строгом режиме

Я использую Husky с Lint-staged и Stylelint

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

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

OS - последняя версия OSX

Узел - 6.10.0

НПМ - 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'

2 ответа

Я использовал узел 7.10.0 и была такая же проблема. Я обнаружил проблему, зарегистрированную в репозитории, где mmoutenot опубликовал интересный ответ, который заставил меня задуматься, поэтому я изучил его и нашел решение!

Хаски предполагает, что все используют nvm для управления версиями узлов и ищет его в NVM_DIR (установлен на $HOME/.nvm) или если установлено с brew BREW_NVM_DIR (установлено на /usr/local/opt/nvm)

если какой- либо путь существует, он загружает версию узла с помощью load_nvm.

Когда я первоначально начал работать с Node, я использовал nvm, но позже перешел к использованию n и не понял, что .nvm не был очищен в домашнем каталоге, поэтому он указывал на более старую версию узла (0.12.7) - что вызвало вышеуказанную ошибку.

Если вы по-прежнему используете nvm для управления версиями узлов, убедитесь, что вы обновляете до версии узлов, поддерживающей функции ES6 (const в этом случае).

Если вы не используете nvm, убедитесь, что nvm не доступен по указанным выше путям. Хаски в конечном итоге использует текущую версию в этом случае (т.е. 6.10.0 в твоем случае)

В качестве альтернативы вы можете попробовать решение, которое mmoutenot упомянул по поводу хаски

Я предполагаю, что вам нужно передать список файлов, которые нужно выгрузить для stylelint:

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

},
"lint-staged": {
  "*.scss": ["stylelint \"**/*.scss\" --syntax scss"
  ]
},
Другие вопросы по тегам