-
-
Couldn't load subscription status.
- Fork 169
Closed
stacksjs/eslint-plugin
#62Description
Since adding package to-valid-identifier as a dependency in v61.1.3 and v61.1.4 (4349209), our CJS project could not run eslint anymore with the error ERR_REQUIRE_ESM.
Can be reproduced by creating a new CJS project, installing eslint and eslint-plugin-jsdoc then copying the config below.
Expected behavior
ESLint should run with CommonJS projects.
Actual behavior
ESLint throws error:
Error [ERR_REQUIRE_ESM]: require() of ES Module C:\Users\MA20507358\Downloads\eslint-issue\node_modules\to-valid-identifier\index.js from C:\Users\MA20507358\Downloads\eslint-issue\node_modules\eslint-plugin-jsdoc\dist\rules\preferImportTag.cjs not supported.
Instead change the require of index.js in C:\Users\MA20507358\Downloads\eslint-issue\node_modules\eslint-plugin-jsdoc\dist\rules\preferImportTag.cjs to a dynamic import() which is available in all CommonJS modules.
at TracingChannel.traceSync (node:diagnostics_channel:315:14)
at Object.<anonymous> (C:\Users\MA20507358\Downloads\eslint-issue\node_modules\eslint-plugin-jsdoc\dist\rules\preferImportTag.cjs:10:49)
ESLint Config
eslint.config.js
const eslint_js = require("@eslint/js");
const globals = require("globals");
const jsdoc = require("eslint-plugin-jsdoc");
module.exports = [
// global ignores
{
ignores: ["dist/**", "node_modules/**", "eslint.config.js"],
},
// eslint recommended rules
eslint_js.configs.recommended,
// plugin recommended rules and overwrites
{
languageOptions: {
ecmaVersion: 2024,
globals: {
...globals.browser,
...globals.es6,
jQuery: false,
Promise: false,
},
},
plugins: { jsdoc },
rules: {
"jsdoc/require-jsdoc": "error",
"jsdoc/check-alignment": "error",
"jsdoc/check-indentation": "error",
"jsdoc/check-param-names": "error",
"jsdoc/check-syntax": "error",
"jsdoc/check-tag-names": "error",
"jsdoc/check-types": "error",
"jsdoc/tag-lines": ["warn", "never", { startLines: 1 }],
"jsdoc/no-undefined-types": "error",
"jsdoc/require-description": "error",
"jsdoc/require-description-complete-sentence": "error",
"jsdoc/require-example": "off",
"jsdoc/require-hyphen-before-param-description": "error",
"jsdoc/require-param": "error",
"jsdoc/require-param-description": "error",
"jsdoc/require-param-name": "error",
"jsdoc/require-param-type": "error",
"jsdoc/require-returns": "error",
"jsdoc/require-returns-check": "error",
"jsdoc/require-returns-description": "error",
"jsdoc/require-returns-type": "error",
"jsdoc/valid-types": "error",
},
},
];ESLint sample
Error is thrown before any linting is done.
Environment
- Node version: v22.11.0
- ESLint version v9.38.0
eslint-plugin-jsdocversion: eslint-plugin-jsdoc@61.1.8