diff --git a/layers/+frameworks/react/packages.el b/layers/+frameworks/react/packages.el index 814a6ad73..975494422 100644 --- a/layers/+frameworks/react/packages.el +++ b/layers/+frameworks/react/packages.el @@ -38,6 +38,20 @@ (defun react/post-init-flycheck () (with-eval-after-load 'flycheck (flycheck-add-mode 'javascript-eslint 'react-mode)) + (defun react/use-eslint-from-node-modules () + (let* ((root (locate-dominating-file + (or (buffer-file-name) default-directory) + "node_modules")) + (global-eslint (executable-find "eslint")) + (local-eslint (expand-file-name "node_modules/.bin/eslint" + root)) + (eslint (if (file-executable-p local-eslint) + local-eslint + global-eslint))) + (setq-local flycheck-javascript-eslint-executable eslint))) + + (add-hook 'react-mode-hook #'react/use-eslint-from-node-modules) + (spacemacs/add-flycheck-hook 'react-mode)) (defun react/post-init-js-doc ()