NodeJS 尝试使用为i18n导入JSON文件的包时出错

ep6jt1vc  于 2023-06-05  发布在  Node.js
关注(0)|答案(3)|浏览(526)

我有一个包,我正在导入我的Next.js项目(v13.4.3),它对另一个包有子依赖关系,该包通过JSON文件提供翻译。然而,当我尝试使用这个包并编译时,我得到了这个错误:

- info Collecting page data ..Error: Cannot find module '/Users/user/app/.next/server/chunks/translations.json'
    at webpackEmptyContext (/Users/user/app/.next/server/chunks/7208.js:9:10)
    at Object.9641 (/Users/user/app/.next/server/chunks/9716.js:10551:45)
    at __webpack_require__ (/Users/user/app/.next/server/webpack-runtime.js:25:42)
    at Object.11450 (/Users/user/app/.next/server/chunks/9716.js:5138:31)
    at __webpack_require__ (/Users/user/app/.next/server/webpack-runtime.js:25:42)
    at Object.4847 (/Users/user/app/.next/server/chunks/9716.js:5309:14)
    at __webpack_require__ (/Users/user/app/.next/server/webpack-runtime.js:25:42)
    at Object.59204 (/Users/user/app/.next/server/chunks/9716.js:6898:14)
    at __webpack_require__ (/Users/user/app/.next/server/webpack-runtime.js:25:42)
    at /Users/user/app/.next/server/pages/projects/[id].js:27:79 {
  code: 'MODULE_NOT_FOUND'
}

当我进入实际的node_module文件夹时,.json文件确实在那里。可能值得注意的是,这两个包都属于NPM范围(例如@mycompany),它被添加到transpilePackages数组中作为["@mycompany"],以防止单独的错误,即我得到了SyntaxError: Unexpected token 'export'。我还尝试使用Remix.run来查看它是否能在那里工作,但我最终得到了相同的错误消息。
我该如何着手解决这个问题?

2nc8po8w

2nc8po8w1#

如果您在尝试使用导入JSON文件进行国际化(i18n)的包时遇到错误,您可以尝试以下几个潜在原因和解决方案:
验证文件路径:再次检查JSON文件的文件路径是否正确。确保文件位于指定的位置,并且包代码中提供的路径与实际文件路径匹配。
检查文件权限:确保JSON文件具有包访问它所需的读取权限。请确保文件未被锁定或以任何方式限制,以防止读取。
确认JSON文件有效性:确保JSON文件本身有效且格式良好。JSON语法错误可能会在导入或解析文件时导致问题。您可以使用在线JSON验证器或工具来检查文件的有效性并修复任何语法错误。
检查缺少的依赖项:某些包需要特定的依赖项来处理JSON文件导入。验证您是否已安装包所需的所有必要依赖项。您可以查阅软件包的文档或README文件,以确定需要安装的任何依赖项。
更新软件包:确保您使用的是最新版本的软件包。有时,兼容性问题或错误可以通过将软件包更新到最新版本来解决。查看软件包的官方网站或软件包管理器(例如,npm,pip)以获取任何更新或错误修复。
寻求软件包社区的支持:如果您已经尝试了上述步骤,但仍然遇到问题,请考虑联系该软件包的社区寻求支持。这可以包括与软件包相关的论坛、GitHub存储库或讨论板。详细描述您的问题并提供任何相关的错误消息,以便从其他用户或软件包维护者那里获得帮助。

oaxa6hgo

oaxa6hgo2#

我认为有几件事你可以尝试修复这个错误
1.确保JSON文件确实由包导入。您可以通过查看包的package.json文件并查看translations.json文件是否在files属性中列出来检查这一点。
1.确保JSON文件位于正确的位置。JSON文件应该与包的index.js文件位于同一目录中。
1.确保JSON文件的名称正确。JSON文件应命名为translations.json。
1.再次尝试运行npm install,以确保JSON文件已正确安装。

  • 请确保您使用的是最新版本的软件包。
  • 确保您使用的是正确版本的Node.js。
  • 请确保使用正确的环境变量。

我希望它对你有用

  • 如果您仍然有问题,可以尝试在Next.js或Remix论坛上寻求帮助。
h22fl7wq

h22fl7wq3#

SASS由Vercel和Next.js has built-in support for Sass using both the .scss and .sass extensions使用。
您在使用Next.js时遇到的错误可能与SASS错误有关,如vercel/next.js issue 11377所示。在某些情况下,当发生SASS错误时,Next CLI将继续打印“Cannot find module”错误,直到SASS错误被修复。
解决此问题的一种方法是在.next目录中手动创建一个包含内容{}build-manifest.json文件。这似乎暂时解决了这个问题,并允许其他更明智的错误出现。
另一位用户报告说,通过使用yarn upgrade命令升级yarn解决了这个问题。
如果上述解决方案不起作用,您可以尝试“ERROR MODULE NOT FOUND whenever I try to run ' npm run dev ' using Next.js”中建议的以下步骤:
1.停止开发服务器(ctrl+c)。
1.删除项目根文件夹中的.next文件夹。
1.删除node_modules文件夹和package-lock.json文件。
1.运行npm cache clean --force
1.运行npm install
1.运行npm run dev
如果执行上述步骤后问题仍然存在,请检查指定路径上是否存在指定的文件。如果是这样,请尝试将项目的文件夹移动到a path other than desktop,因为可能存在Windows权限问题,但我怀疑这里不应该是这种情况(/Users/...:MacOS?)。
请记住,在更改项目的文件或目录之前,请始终备份您的工作,以防止任何数据丢失。

相关问题