首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NextJs Next.config.mjs导入本地常量文件

NextJs Next.config.mjs导入本地常量文件
EN

Stack Overflow用户
提问于 2021-12-16 15:15:48
回答 2查看 1.9K关注 0票数 5

导入next.config中的本地文件

问题

嗨,我们面临的问题是想要创建一个动态的下一个配置。如果我们不导入任何文件,但是在试图导入next.config.mjs中的常量文件时,情况就会中断。

为了使用配置文件的MJS变体,我们使用了下一个版本12.1。

常量文件是一个简单的JS文件,带有一些值来确定我们支持的不同品牌需要使用的区域设置。这些值用于多个地方,这就是为什么我们不想在这里硬编码这些值的原因。

代码语言:javascript
运行
复制
import { locales } from './src/constants/locales'; // It breaks on this import

const currentPlatform = process.env.NEXT_PUBLIC_PLATFORM;

module.exports = () => ({
  i18n: {
    localeDetection: false,
    ...locales[currentPlatform],
  },
  images: {
    domains: [
      // Our domains
    ],
  },
  async rewrites() {
    return [
      // Our rewrites
    ];
  },
  webpack: (config, { defaultLoaders }) => {
    config.module.rules.push(
      // Our config
    );

    return config;
  },
});

错误信息

这是当我们试图启动dev服务器时引发的错误,这表明导入路径是错误的。(事实并非如此。)

代码语言:javascript
运行
复制
error - Failed to load next.config.mjs, see more info here https://nextjs.org/docs/messages/next-config-error
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/Users/*****/Development/****/********/src/constants/locales' imported from /Users/******/Development/******/******/next.config.mjs
Did you mean to import ../src/constants/locales.js?
    at finalizeResolution (internal/modules/esm/resolve.js:276:11)
    at moduleResolve (internal/modules/esm/resolve.js:699:10)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
    at Loader.resolve (internal/modules/esm/loader.js:86:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:230:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
    at link (internal/modules/esm/module_job.js:55:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

  • =删失路径名

任何提示,技巧或额外的信息是欢迎的!

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2022-01-22 14:35:11

也许您使用的是.vercelignore,而不是包含文件/文件夹。我犯了同样的错误,在我的例子中,我没有包括!/lingui.config.js

代码语言:javascript
运行
复制
> Build error occurred
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/vercel/path0/lingui.config.js' imported from /vercel/path0/next.config.mjs
    at new NodeError (internal/errors.js:322:7)
    at moduleResolve (internal/modules/esm/resolve.js:731:10)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:842:11)
    at Loader.resolve (internal/modules/esm/loader.js:89:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:242:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:76:40)
    at link (internal/modules/esm/module_job.js:75:36) {
code: 'ERR_MODULE_NOT_FOUND'
}

为了解决这个问题,我添加了丢失的文件:

代码语言:javascript
运行
复制
/*

!/public
!/src
!/lingui.config.js # <-- my mistake
!/next-env.d.ts
!/next.config.mjs
!/package.json
!/postcss.config.js
!/tailwind.config.cjs
!/tsconfig.json
!/yarn.lock
票数 0
EN

Stack Overflow用户

发布于 2022-12-01 22:10:16

我使用nextjsv13.x也遇到了同样的问题,并且我成功地导入了我的:

import { var1, var2 } from './src/constants.js

使用在constants文件中编写的标准js模块。

const var1 = 'hello'; const var2 = 'world'; module.exports = { var1, var2 };

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70381402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档