diff --git a/lib/plugins/utils.js b/lib/plugins/utils.js index dbc892d8a2..addc8d1e2d 100644 --- a/lib/plugins/utils.js +++ b/lib/plugins/utils.js @@ -52,14 +52,18 @@ export async function loadPlugin({cwd}, name, pluginsPath) { ? dirname(resolveFrom.silent(__dirname, pluginsPath[name]) || resolveFrom(cwd, pluginsPath[name])) : __dirname; - if (!isFunction(name)) { - const file = resolveFrom.silent(basePath, name) || resolveFrom(cwd, name); - // See https://github.com/mysticatea/eslint-plugin-node/issues/250 - // eslint-disable-next-line node/no-unsupported-features/es-syntax - name = (await import(`file://${file}`)).default; + if (isFunction(name)) { + return name; } - return name; + const file = resolveFrom.silent(basePath, name) || resolveFrom(cwd, name); + const { default: cjsExport, ...esmNamedExports } = await import(`file://${file}`); + + if (cjsExport) { + return cjsExport; + } + + return esmNamedExports; } export function parseConfig(plugin) {