-
-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: migrate to FlatConfig
#64
feat: migrate to FlatConfig
#64
Conversation
package.json
Outdated
"@eslint/js": "^9.10.0", | ||
"eslint-plugin-n": "^17.10.3", | ||
"globals": "^15.9.0", | ||
"typescript-eslint": "^8.6.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we are creating new presets, it is a good chance for us to add a few more presets. E.g. we could add https://www.npmjs.com/package/eslint-plugin-mocha since almost all Hexo repos use mocha.
Note that we might need to disable a few rules (E.g. mocha/no-mocha-arrows
since we all use arrow functions).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need "type": "module",
or name js file to mjs
Oops! Something went wrong! :(
ESLint: 9.11.1
/home/user/eslint-config-hexo/eslint.js:1
import nodePlugin from 'eslint-plugin-n';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:77:18)
at wrapSafe (node:internal/modules/cjs/loader:1288:20)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then keep using const = require
then. In the ESLint world, CommonJS is still the first-class citizen.
FlatConfig
FlatConfig
@hexojs/core Thanks :) |
Tested in hexojs/hexo-renderer-marked#306 |
Some tests failed here: hexojs/hexo#5599 |
Coverage collection has failed, but all other tests have passed. The eslint changes are unrelated to the test results. |
test.js
Outdated
|
||
const mochaConfig = { | ||
...mochaPlugin.configs.flat.recommended, | ||
rules: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this will overwrite the rules
in mochaPlugin.configs.flat.recommended
, please make sure this meets your expectations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this override is correct. I read the rules in README and configured the overrides to ignore specific settings in our test code. For example, we use allow functions
in our test code, but in the eslint-plugin-mocha recommended configuration, this is a warning by default.
test.js
Outdated
@@ -1,9 +1,29 @@ | |||
module.exports = { | |||
extends: './eslint.js', | |||
const eslint = require('./eslint.js'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Such naming may be confusing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
0544bdd
Personally, I think it would be better to rename the file itself from eslint.js
. If we were to align it with other file names, it would be js.js
, but I don't think that’s a good choice for naming.
Refs: #55
check list
Add test cases for the changes.Passed the CI test.Usage