diff --git a/markdownlint-cli2.js b/markdownlint-cli2.js index 2ae120d..4d91ea8 100755 --- a/markdownlint-cli2.js +++ b/markdownlint-cli2.js @@ -97,11 +97,18 @@ const importOrRequireResolve = async (dirOrDirs, id, noRequire) => { const dirs = Array.isArray(dirOrDirs) ? dirOrDirs : [ dirOrDirs ]; const expandId = expandTildePath(id); const errors = []; + // Try to load via require(...) try { - return resolveAndRequire(dynamicRequire, expandId, dirs); + const isModule = /\.mjs$/iu.test(expandId); + if (!isModule) { + // Try not to use require for modules due to breaking change in Node 22.12: + // https://github.com/nodejs/node/releases/tag/v22.12.0 + return resolveAndRequire(dynamicRequire, expandId, dirs); + } } catch (error) { errors.push(error); } + // Try to load via import(...) try { // eslint-disable-next-line n/no-unsupported-features/node-builtins const isURL = !pathDefault.isAbsolute(expandId) && URL.canParse(expandId); @@ -114,6 +121,7 @@ const importOrRequireResolve = async (dirOrDirs, id, noRequire) => { } catch (error) { errors.push(error); } + // Give up throw new AggregateError( errors, `Unable to require or import module '${id}'.`