You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 7.1配置ActionText嵌入YouTube视频遇Trix导出错误

解决Rails 7.1.3 + Importmaps下Trix导入语法错误问题

针对你遇到的Uncaught SyntaxError: The requested module 'trix' does not provide an export named 'default'错误,以下是几个验证过的解决方案:

方案1:指定Trix的ESM模块路径

默认pin "trix"可能指向的是UMD格式的文件,而非纯ESM模块。修改importmap.rb中的trix配置:

pin "trix", to: "trix.esm.js" # @2.0.10

然后在youtube.js中保持原导入语句:

import Trix from "trix"

重启服务器后测试,这个配置会让Importmaps加载Trix的原生ESM版本,匹配你看到的export{Wn as default}导出格式。

方案2:从ActionText间接导入Trix

因为ActionText本身依赖并封装了Trix,可直接从@rails/actiontext导入Trix对象,无需单独处理tix的模块:
修改youtube.js的导入语句:

import { Trix } from "@rails/actiontext"

同时确保importmap.rb中已正确pin @rails/actiontext(你的配置里已经包含该条目):

pin "@rails/actiontext", to: "actiontext.esm.js"

方案3:直接使用全局Trix对象

如果上述两种方式都无效,可跳过模块导入,直接使用ActionText加载后暴露的全局Trix对象:
删除youtube.js中的导入语句,直接编写扩展代码:

// 移除 import Trix from "trix"
Trix.config.blockAttributes.embed = {
  // 你的YouTube嵌入配置代码
}

这种方式依赖ActionText在全局作用域注入Trix对象,需确保application.js中先加载@rails/actiontext再加载你的youtube模块。

额外检查项

  • 确认application.js中的加载顺序:先导入@rails/actiontext,再引入自定义的youtube模块
  • 执行bin/importmap cache clear清除Importmaps缓存,避免旧模块文件干扰

内容的提问来源于stack exchange,提问作者Charli Bregnballe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 04:52:16