Skip to content

Error [ERR_REQUIRE_ESM] for module to-valid-identifier since v61.1.3/v61.1.4 #1583

@mathewzile

Description

@mathewzile

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-jsdoc version: eslint-plugin-jsdoc@61.1.8

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions