Rails 7中的importmap-rails,这可能吗?

Posted

技术标签:

【中文标题】Rails 7中的importmap-rails,这可能吗?【英文标题】:importmap-rails in Rails 7, is this possible? 【发布时间】:2021-12-06 15:48:43 【问题描述】:

我已经在 importmap-rails gem github 存储库 here 中打开了一个关于此问题的问题,但我想我会在这里提出问题,以防有人有解决方法

这是我目前发现的

使用 rails plugin new custom_page --mountable --full 生成的带有 Rails 7 alpha 2 或 Rails 7.0 的新引擎会生成一个新引擎,该引擎在捆绑的 gem 中包含 importmap-rails gem,但无法使用它。在enginename.gemspec 中添加spec.add_dependency 'importmap-rails' 没有区别,在engine.rb 中添加require importmap-rails 也没有区别。 bin 目录中没有 importmap 可执行文件。 致电bundle info importmap-rails 产生一个有希望的结果,表明 gem 是默认安装的

* importmap-rails (0.8.1)
    Summary: Use ESM with importmap to manage modern javascript in Rails without transpiling or bundling.
    Homepage: https://github.com/rails/importmap-rails
    Source Code: https://github.com/rails/importmap-rails
    Path: /home/jamie/.rvm/gems/ruby-3.0.0@custom_page/gems/importmap-rails-0.8.1

致电rails --tasks 显示

rails app:importmap:install # Setup Importmap for the app

但我相信这是来自 --full 选项生成的测试应用程序,而不是可用于引擎的 rails 命令。 我期待在没有 app: 前缀的情况下看到同样的结果 调用此任务将解析​​为模板错误,如图所示

rails app:importmap:install

不知道如何构建任务 'app:template'(请参阅可用列表 rails --tasks 的任务)你的意思是?应用程序:tmp:创建

如果有解决此问题的解决方案,我将不胜感激,我相信其他人也会。我想要这个的原因是我完全没有在 rails 6.1.4 引擎中引入 webpacker,我希望这将是我的,大大改进的解决方案

【问题讨论】:

【参考方案1】:

我回退到在 html 中包含旧式 Javascript。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>

它肯定适用于所有浏览器,而不是确定浏览器是否支持我以后可能会使用的功能。

我也可以完全控制放置哪个页面...但这可能不是您想要的...

【讨论】:

以上是关于Rails 7中的importmap-rails,这可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

在生产环境中使用 Rails 7 中的 importmaps 时出现 404 错误

未读取 database.yml 中的 ENV 变量(Rails 4.2.0、RubyMine 7、Postgres、Ruby 2.2.0、DotEnv)

Ruby on rails 中的捆绑错误

5--Rails架构中的资源

JavaScript 的 Fetch 可以用来更新 Rails 控制器中的参数值吗?

如何从 Rails Active Storage 中的 url 附加图像