Fix using trix in sprockets
When Trix was [updated][1] from 1.3.1 to 2.0.4, the ESM bundle of 2.0.4 was used instead of the UMD bundle (the vendored 1.3.1 file used the UMD bundle). This leads to issues when trying to use Trix with sprockets because the ESM bundle declares variables like they are scoped to the file but sprockets will see them as scoped globally. This commit fixes the issue by replacing the Trix ESM bundle with the UMD bundle (and upgrades it from 2.0.4 to 2.0.7). Additionally, a Rake task has been added similar to one previously [added][2] to the guides for automatic vendoring using Importmap::Packager. [1]: fab1b522cd11696c7330028fcc7bf25a8a109f5f [2]: a42863f514e726b864f60ad10e79002fe2b39f5a
This commit is contained in:
parent
4c5c904a21
commit
c93a989635
@ -1,2 +1,9 @@
|
||||
* Upgrade Trix to 2.0.7
|
||||
|
||||
*Hartley McGuire*
|
||||
|
||||
* Fix using Trix with Sprockets
|
||||
|
||||
*Hartley McGuire*
|
||||
|
||||
Please check [7-1-stable](https://github.com/rails/rails/blob/7-1-stable/actiontext/CHANGELOG.md) for previous changes.
|
||||
|
@ -26,4 +26,27 @@ namespace :test do
|
||||
end
|
||||
end
|
||||
|
||||
task :vendor_trix do
|
||||
module Importmap; end
|
||||
require "importmap/packager"
|
||||
|
||||
packager = Importmap::Packager.new(vendor_path: "app/assets/javascripts")
|
||||
imports = packager.import("trix", from: "unpkg")
|
||||
imports.each do |package, url|
|
||||
url.gsub!("esm.min.js", "umd.js")
|
||||
puts %(Vendoring "#{package}" to #{packager.vendor_path}/#{package}.js via download from #{url})
|
||||
packager.download(package, url)
|
||||
|
||||
css_url = url.gsub("umd.js", "css")
|
||||
puts %(Vendoring "#{package}" to #{packager.vendor_path}/#{package}.css via download from #{css_url})
|
||||
|
||||
response = Net::HTTP.get_response(URI(css_url))
|
||||
if response.code == "200"
|
||||
File.open(Pathname.new("app/assets/stylesheets/trix.css"), "w+") do |file|
|
||||
file.write response.body
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
task default: :test
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user