Skip to content

Nuxt4 - ERR_INVALID_MODULE_SPECIFIER #612

@lsv

Description

@lsv

Environment

Package

@nuxt/eslint

Reproduction

.

Describe the bug

After a few changes, then everything is working fine.

Now I wanted to lint the project.

❯ eslint

Oops! Something went wrong! :(

ESLint: 9.34.0

TypeError [ERR_INVALID_MODULE_SPECIFIER]: Invalid module ".nuxt/eslint.config.mjs" is not a valid package name imported from <project>/eslint.config.mjs
    at parsePackageName (node:internal/modules/package_json_reader:222:11)
    at Object.getPackageJSONURL (node:internal/modules/package_json_reader:234:5)
    at packageResolve (node:internal/modules/esm/resolve:768:81)
    at moduleResolve (node:internal/modules/esm/resolve:854:18)
    at defaultResolve (node:internal/modules/esm/resolve:984:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:685:12)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:634:25)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:617:38)
    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:273:38)
    at ModuleJob._link (node:internal/modules/esm/module_job:135:49)

Additional context

// <root>/eslint.config.mjs

// @ts-check
import withNuxt from '.nuxt/eslint.config.mjs'

export default withNuxt(
  // Your custom configs here
)
// <root>/.nuxt/eslint.config.mjs

// ESLint config generated by Nuxt
/// <reference path="./eslint-typegen.d.ts" />
/* eslint-disable */
// @ts-nocheck

import typegen from '../node_modules/eslint-typegen/dist/index.mjs';
import { createConfigForNuxt, defineFlatConfigs, resolveOptions } from '../node_modules/@nuxt/eslint-config/dist/flat.mjs';
import { fileURLToPath } from 'node:url';

const r = (...args) => fileURLToPath(new URL(...args, import.meta.url))

export { defineFlatConfigs }

export const options = resolveOptions({
  features: {
  "standalone": true,
  "stylistic": true
},
  dirs: {
    pages: ["app/pages"],
    composables: ["app/composables", "app/utils"],
    components: ["app/components"],
    componentsPrefixed: [],
    layouts: ["app/layouts"],
    plugins: ["app/plugins"],
    middleware: ["app/middleware"],
    modules: ["modules"],
    servers: [],
    root: [],
    src: ["app"],
}
})

export const configs = createConfigForNuxt(options)

configs.append(
// Set globals from imports registry
{
  name: 'nuxt/import-globals',
  languageOptions: {
    globals: Object.fromEntries(["  ..... redacted .....  "].map(i => [i, 'readonly'])),
  },
}
)

export function withNuxt(...customs) {
  return configs
    .clone()
    .append(...customs)
    .onResolved(configs => typegen(configs, { dtsPath: r("./eslint-typegen.d.ts"), augmentFlatConfigUtils: true }))
}

export default withNuxt

Logs

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions