开发者社区 > 云效DevOps > 正文

有人在构建云效 node.js 应用的时候遇到这个错误码?Only file and data

1f9775b4f3cd88deb99ecf695adeb8cf.png 有人在构建云效 node.js 应用的时候遇到这个错误码?Only file and data URLs are supported by the default ESM loader

展开
收起
真的很搞笑 2023-06-07 18:10:11 763 0
4 条回答
写回答
取消 提交回答
  • 这个我已经遇到并解决了,最简单的方案就是将node版本升级,我升级到了16.8解决了

    2024-01-23 18:23:54
    赞同 展开评论 打赏
  • 这个错误提示表明默认的 ESM(ECMAScript Modules)加载器只支持文件和数据 URL,不支持其它类型的 URL。

    如果你在构建云效 node.js 应用时遇到这个错误码,可能是因为你的代码中使用了不支持的 URL 类型。你可以检查一下代码中是否有使用类似于 http://https:// 这样的 URL,如果有的话,可以尝试将其替换为文件或数据 URL,或者使用一个支持这种 URL 类型的加载器。

    另外,你可以尝试在构建时指定一个自定义的 ESM 加载器,以解决这个问题。具体的方法可以参考 node.js 官方文档中有关 ESM 加载器的部分:https://nodejs.org/api/esm.html#esm_custom_loaders

    2023-06-08 08:52:29
    赞同 1 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    这个错误码一般是由于使用了ESM(ECMAScript Modules)模块化语法,但是默认的ESM加载器不支持使用URL加载模块导致的。

    解决方案如下:

    1. 确认您的应用程序是否使用了ESM语法,如果是,可以尝试升级Node.js版本到12.0以上。
    2. 如果您的Node.js版本已经满足要求,可以在应用程序入口文件中添加以下代码:
    import { createRequire } from 'module';
    const require = createRequire(import.meta.url);
    

    这段代码将创建一个新的require函数,它支持使用URL加载模块。

    1. 如果上述方法无法解决问题,您可以考虑使用第三方的ESM加载器,例如esm或者@std/esm。
    2023-06-07 19:00:10
    赞同 展开评论 打赏
  • 您可以上网搜索一下看有没有其他开发分享解决流程,此回答整理自钉群“云效开发者交流群6群”

    2023-06-07 18:24:53
    赞同 展开评论 打赏

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效 立即下载