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

Rails 5.X迁移至7.1.3版本时Rails Admin出现JavaScript语法错误的问题求助

Rails 5.X迁移至7.1.3版本时Rails Admin出现JavaScript语法错误的问题求助

我正在把一个Ruby on Rails项目从5.X版本迁移到7.1.3版本,现在遇到了Rails Admin的JavaScript问题。打开浏览器控制台后,出现了以下类型的错误:

turbo.self-35ed69897…8b6888b535c.js:470 Uncaught SyntaxError: Unexpected token 'export'
 
filter-box.self-8d0c…705a1f3c23d6da.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
filtering-multiselec…ee8f6f0f1831f8.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
filtering-select.sel…b3f57e45795b57.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
remote-form.self-daf…4986cee62b7a29.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
nested-form-hooks.se…8c57e71c987be1.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
i18n.self-762663bbe8…e1ce77141eccd.js:18 Uncaught SyntaxError: Unexpected token 'export'
 
widgets.self-7e1b0c9…fd01d572b034d0.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
 
ui.self-16ae4a4a2e7c…62c6108f3fd38f.js:1 Uncaught SyntaxError: Cannot use import statement outside a module

我在config文件夹中创建了一个名为importmap.rails_admin.rb的文件,内容如下:

pin "rails_admin", preload: true
pin "rails_admin/src/rails_admin/base", to: "https://ga.jspm.io/npm:rails_admin@3.1.2/src/rails_admin/base.js"
pin "@hotwired/turbo", to: "https://ga.jspm.io/npm:@hotwired/turbo@7.3.0/dist/turbo.es2017-esm.js"
pin "@hotwired/turbo-rails", to: "https://ga.jspm.io/npm:@hotwired/turbo-rails@7.3.0/app/javascript/turbo/index.js"
pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.8/dist/esm/popper.js"
pin "@rails/actioncable/src", to: "https://ga.jspm.io/npm:@rails/actioncable@7.1.3/src/index.js"
pin "@rails/ujs", to: "https://ga.jspm.io/npm:@rails/ujs@6.1.7/lib/assets/compiled/rails-ujs.js"
pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@5.3.3/dist/js/bootstrap.esm.js"
pin "flatpickr", to: "https://ga.jspm.io/npm:flatpickr@4.6.13/dist/esm/index.js"
pin "jquery", to: "https://ga.jspm.io/npm:jquery@3.7.1/dist/jquery.js"
pin "jquery-ui/", to: "https://ga.jspm.io/npm:jquery-ui@1.13.2/"

同时,我还有一个importmap.rb文件,内容如下:

# Pin npm packages by running ./bin/importmap

pin "application" 
pin "@hotwired/turbo-rails", to: "turbo.min.js" 
pin "@hotwired/stimulus", to: "stimulus.min.js" 
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js" 
pin_all_from "app/javascript/controllers", under: "controllers"

以下是application.html.erb中head标签的内容:

<head>
    <title><%= @hospital.short_name %><%= t('meta.hospital_title') %></title>
    <meta name="description" content="<%= t('meta.description') %>">
    <meta name="keywords" content="">
    <meta property="og:title" content="<%= @hospital.short_name %><%= t('meta.hospital_title') %>"/>
    <meta property="og:image" content="<%= image_url 'merendre_ca_logo.jpg' %>"/>
    <meta property="og:site_name" content="<%= t('meta.title') %>"/>
    <meta property="og:description" content="<%= t('meta.description') %>"/>
    <meta name="robots" content="noindex,nofollow">
    <%= csrf_meta_tags %>
    <link rel="apple-touch-icon" href="<%= image_url('touch-icon.png') %>"/>
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1, user-scalable=no" name="viewport">
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= render 'layouts/google_tag_manager' %>
    <script src="<%= javascript_url 'application' %>" data-turbolinks-track="reload"></script>
    <%= javascript_importmap_tags %>
    <%= stylesheet_link_tag "application", "data-turbo-track": "reload" %>
</head>

我有点搞不清楚哪里出错了,之前没怎么接触过Rails 7.x版本。我也查阅了一些文档,但还是很困惑,不知道该怎么解决,期待你的建议。

备注:内容来源于stack exchange,提问作者Denis Morin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:57:57