使用 ESM 与 importmap 一起管理 Rails 中的现代 JavaScript,无需转译或打包。
导入映射 允许您使用映射到版本化/摘要文件的逻辑名称来直接从浏览器中导入 JavaScript 模块。因此,您可以使用专为 ES 模块 (ESM) 打造的 JavaScript 库构建现代的 JavaScript 应用程序,而无需进行翻译或打包。这使您无需使用 Webpack、Yarn、npm 或 JavaScript 工具链的任何其他部分。您只需要 Rails 中已包含的资产管道即可。
使用这种方法,您可以发送许多个小的 JavaScript 文件,而不是一个大的 JavaScript 文件。由于 HTTP/2 不再在初始传输过程中带来明显的性能损失,而且长期来看,由于更好的缓存动态,它还带来了明显的优势。以前,对大集合中包含的任何 JavaScript 文件所做的任何更改都会使整个集合的缓存失效,现在,只会使该单个文件的缓存失效。
Rails 的 Importmap 会自动包含在 Rails 7+ 中的新应用程序中,但您也可以在现有应用程序中手动安装它: 1. 运行 ./bin/bundle add importmap-rails 2. 运行 ./bin/rails importmap:install 注意: 为了从 Rails 框架中使用 JavaScript(例如 Action Cable、Action Text 和 Active Storage),您必须运行 Rails 7.0+。这是第一个搭载与 ESM 兼容的这些库的版本。您可以通过依赖 Rails 中包含的编译版本来手动安装这些库,如下所示: ```ruby
pin "@rails/actioncable", to: "actioncable.esm.js"
pin "@rails/activestorage", to: "activestorage.esm.js"
pin "@rails/actiontext", to: "actiontext.esm.js"
pin "trix"
暂无开放 Issues,或尚未同步最近议题。