Skip to content

Can't use this library with Next.js using a next.config.mjs file #140

Open

Description

@RobotSail

I'm trying to use this with a next.config.mjs file and am probably using this incorrectly. The issue I'm running into is that there is no place for me to pass my existing NextConfig as an argument into removeImports, since the signature looks like:

declare type PluginOptions = {
    test?: RegExp;
    matchImports?: string;
};
declare const _default: (pluginOptions?: PluginOptions) => (nextConfig?: NextConfig) => NextConfig;

I've tried instead to merge the output from removeImports with my initialized config, but that didn't seem to have any effect:

// @ts-check

import removeImports from 'next-remove-imports'

/**
 * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation.
 * This is especially useful for Docker builds.
 */
!process.env.SKIP_ENV_VALIDATION && (await import("./src/env.mjs"));


/** @type {import("next").NextConfig} */
const config = {
  reactStrictMode: true,

  /**
   * If you have the "experimental: { appDir: true }" setting enabled, then you
   * must comment the below `i18n` config out.
   *
   * @see https://github.com/vercel/next.js/issues/41980
   */
  i18n: {
    locales: ["en"],
    defaultLocale: "en",
  },
	...removeImports(),
};
export default config;

This must be the case of me doing something incorrectly, but it's blocking my ability to use this package.

Activity

  1. RobotSail commented on Feb 20, 2023

    @RobotSail
    Author

    I've created an issue for this in next-remove-imports.

  2. changed the title [-]Can't use this library with Next.js[/-] [+]Can't use this library with Next.js using a `next.config.mjs` file[/+] on Feb 20, 2023
  3. jaywcjlove commented on Feb 21, 2023

    @jaywcjlove
    Member

    @RobotSail

    import removeImports from 'next-remove-imports'
    
    const removeImportsFun = removeImports({
      options: { },
    })
    
    export default removeImportsFun({
      reactStrictMode: true,
      i18n: {
        locales: ["en"],
        defaultLocale: "en",
      },
    })
  4. RobotSail commented on Feb 21, 2023

    @RobotSail
    Author

    @jaywcjlove Thanks! I tried using CodeEditor with the above configuration but am still running into the following error:

    Error: require() of ES Module /Users/osilkin/Programming/main/autoreviewer-2/node_modules/rehype/index.js from /Users/osilkin/Programming/main/autoreviewer-2/node_modules/@uiw/react-textarea-code-editor/cjs/utils.js not supported.
    Instead change the require of index.js in /Users/osilkin/Programming/main/autoreviewer-2/node_modules/@uiw/react-textarea-code-editor/cjs/utils.js to a dynamic import() which is available in all CommonJS modules.
    
  5. jaywcjlove commented on Feb 22, 2023

    @jaywcjlove
    Member
  6. lucgagan commented on May 29, 2023

    @lucgagan

    In case of Next.js, adding experimental.esmExternals: 'loose' fixes the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions