Open ChristianMurphy opened 1 year ago
I don't see how to test eslint@9
at this point.
Since the new flat config no longer resolves files, and supports eslint.config.mjs
, I think ESLint MDX integrations can switch to ESM.
Since the new flat config no longer resolves files, and supports
eslint.config.mjs
, I think ESLint MDX integrations can switch to ESM.
I'd like to keep dual. Legacy .eslintrc
configs are still supported.
Legacy configuration are deprecated https://eslint.org/blog/2023/12/eslint-v9.0.0-alpha.0-released/
There are far less quirks and hacks packaging as pure ESM, rather than dealing with dual packaging limitations.
https://github.com/mdx-js/eslint-mdx/issues/496
@ChristianMurphy
worker.mts
will bypass all the limitations.
They're deprecated but still supported. I don't want to break anyone's current workflow before they're ready including myself.
For example, compatibility with other plugins.
https://github.com/import-js/eslint-plugin-import/issues/2948#issuecomment-1872563600
What's the plan?
If you don't use Markdown, then the current version eslint-plugin-mdx@3.1.5
appears to work in ESLint v9 by copying the flat
config which is exported:
eslint.config.js
or eslint.config.mjs
import eslintMdx from 'eslint-mdx';
import mdx from 'eslint-plugin-mdx';
/** @type {import('eslint').Linter.FlatConfig} */
const config = [
{
files: ['**/*.mdx'],
languageOptions: {
sourceType: 'module',
ecmaVersion: 'latest',
parser: eslintMdx,
globals: {
React: false,
},
},
plugins: {
mdx,
},
rules: {
'mdx/remark': 'warn',
'no-unused-expressions': 'error',
'react/react-in-jsx-scope': 0,
},
},
];
export default config;
i have integrating mdx into a plugin it can works fine for eslint V9 https://github.com/hyperse-io/eslint-config-hyperse
what's plan for ESLint V9, i used it in local, it seems that everything works fine except we need to bump eslint-plugin-markdown
to latest version (5.1.0
) for now it used "eslint-plugin-markdown": "^3.0.1"?
ESLint v8 is EOL in one month (https://eslint.org/version-support/). Would you consider dropping v8 support to make it easier to migrate this plugin to v9?
If anyone really needs v8 support, they can continue to use the current version of this plugin.
@eslint/markdown
(formerly eslint-plugin-markdown
6.0.0 is ESM only. I think it’s fair to drop CJS support in other ESLint plugins as well.
it's time to drop cjs +1 :)
Initial checklist
Problem
ESLint 9 is changing the plugin API: https://eslint.org/blog/2023/09/preparing-custom-rules-eslint-v9/ There may be changes needed in ESLint-MDX
Solution
Check to see if any changed/removed APIs are used, migrate if needed.
Alternatives