neutrinojs / neutrino

Create and build modern JavaScript projects with zero initial configuration.
https://neutrinojs.org
Mozilla Public License 2.0
3.95k stars 213 forks source link

ESLint 6.0.0 compatibility #1423

Closed edclement closed 5 years ago

edclement commented 5 years ago

Bug or issue?

Please try to answer the following questions:

lint /home//Git// eslint --format codeframe --ext js ./src ./e2e ./*.js .neutrinorc.js

Error: Cannot read config file: /home//Git///.eslintrc.js Error: Cannot find module 'eslint/lib/config/config-ops' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15) at Function.Module._load (internal/modules/cjs/loader.js:562:25) at Module.require (internal/modules/cjs/loader.js:690:17) at require (internal/modules/cjs/helpers.js:25:18) at Object. (/home//Git///node_modules/@neutrinojs/eslint/index.js:2:32) at Module._compile (internal/modules/cjs/loader.js:776:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! @0.1.0 lint: eslint --format codeframe --ext js ./src ./e2e ./*.js .neutrinorc.js npm ERR! Exit status 2 npm ERR! npm ERR! Failed at the @0.1.0 lint script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! /home//.npm/_logs/2019-06-24T13_58_59_802Z-debug.log

edclement commented 5 years ago

Link to their migration guide: https://eslint.org/docs/user-guide/migrating-to-6.0.0

edclement commented 5 years ago

Did some digging, looks like they just moved the location: https://github.com/eslint/eslint/blob/v6.0.0/lib/shared/config-ops.js

edmorley commented 5 years ago

Hi! Thank you for opening an issue. Adding support for ESLint 6 is on our list of things to do, however it's blocked on a few pre-requisites first (eg support in the AirBnB preset and plugins), along with some changes on our side. Some initial discussion has occurred in #1421 :-)

djmitche commented 5 years ago

Eslint 5 currently has a few dependencies with active sec vulns. It'd be really nice to not be stuck on such an ancient version.

edmorley commented 5 years ago

Hi! ESLint 5 isn't vulnerable itself, one of its transitive dependencies can be, if not updated via the lockfile. ESLint 6 bumping its deps to force users onto the newer version (thereby not relying on them knowing to refresh the lockfile) is definitely a win - though more the icing on the cake: https://eslint.org/blog/2019/08/eslint-v6.2.1-released

For what it's worth, I'd love to upgrade to ESLint 6, it's just non-trivial given https://github.com/neutrinojs/neutrino/pull/1421#issuecomment-504785584 - and I no longer work on JS for my day job so don't get a huge amount of time to spend on Neutrino. I'd also point out that v6.2.1 (that contains the dep bump to force the security fix) was only released 20th Aug, and ESLint 6 itself only June (and it's never possible to upgrade immediately given preset ecosystem), so "ancient" is perhaps a little bit of an overstatement :-)

djmitche commented 5 years ago

Sorry about "ancient" - I was referring to v5, rather than 6.2.1.

edmorley commented 5 years ago

I've opened #1464 to remove the usages of ESLint internal APIs that were blocking the ESLint 6 upgrade in #1421. If anyone has a spare moment to review, it will help speed up progress :-)