汪汪队 开大会 2025-01-22 18:27 采纳率: 0%
浏览 16

执行npm run serve的时候报错

npm run serve的时候报错。

img


这是运行的时候报的错误。

修改了node_modules\js-message\Message.js 这个文件下的代码 把 type:module 删除了
和修改了node_modules\js-message\package.json 结果也没有用,能运行起来,只不过还是报错,

img

我以为是node的版本错误,我就切换了几个版本 12.16.2和14.16.0 结果也都是不行。
目前的版本是14.16.0 然后npm的版本是6.14.11

请问是怎么回事

  • 写回答

2条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您提供的错误信息来看,这个问题可能是由于项目中的某些模块使用了 ECMAScript 模块(ESM)的语法,而您的环境(Node.js 和 npm)可能不支持直接通过 CommonJS 的 require 方式来加载 ESM 模块导致的。在 Node.js 中,ESM 和 CommonJS 是两种不同的模块系统,不能直接混用。这就是为什么您会看到 require() of ES modules is not supported 这样的错误。

    解决这个问题的一种方法是更新您的 Node.js 版本到最新的 LTS 版本(长期支持版本),因为新版本的 Node.js 支持更多的 ESM 特性。同时,确保您的 npm 版本也是最新的。

    另外,尝试以下步骤可能有助于解决这个问题:

    1. 删除 node_modules 目录和 package-lock.json 文件。
    2. 运行 npm install 重新获取依赖。

    如果问题仍然存在,您可以尝试以下特定的解决方案:

    • 修改 js-message 模块的代码或者寻找其他兼容的模块替代它。这可能涉及到更改文件的扩展名或者修改代码以适配 CommonJS 的 require 方式。请注意,直接修改 node_modules 中的文件并不是最佳实践,因为这些更改在更新依赖时可能会丢失。一个更好的方式是创建一个补丁或使用其他方法覆盖这些文件。
    • 考虑使用 Babel 等工具转换模块类型。如果您不能将项目完全迁移到 ESM,您可以尝试使用 Babel 将 ESM 代码转换为 CommonJS 代码。
    • 检查项目中其他可能的 ESM 用法。可能存在其他模块或文件使用了 ESM 语法,您也需要进行相应的调整。

    至于您提到的 self [ CACHE ] . get is not a function 错误,这可能是由于某些代码尝试访问一个未定义或未正确初始化的对象属性导致的。您需要检查相关代码以确定问题的根源。这可能涉及到 App.vue 文件或与之相关的其他文件。确保所有依赖项都已正确安装和配置,并检查代码中是否存在语法错误或逻辑错误。

    总之,这个问题涉及到模块系统的混用和可能的代码错误。您需要仔细检查和调整项目中的相关部分,同时确保您的开发环境是最新的,并正确配置。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月22日