Хаски дает ошибку 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"
]
},