module VitePluginLegacy::TagHelpers
Public: Allows to render HTML tags for scripts and styles processed by Vite.
Public Instance Methods
vite_legacy_javascript_tag(name, asset_type: :javascript)
click to toggle source
Public: Renders a <script> tag for the specified Vite entrypoints when using @vitejs/plugin-legacy, which injects polyfills.
# File lib/vite_plugin_legacy/tag_helpers.rb, line 7 def vite_legacy_javascript_tag(name, asset_type: :javascript) return if ViteRuby.instance.dev_server_running? legacy_name = name.sub(/(\..+)|$/, '-legacy\1') import_tag = content_tag(:script, nomodule: true) { "System.import('#{ vite_asset_path(legacy_name, type: asset_type) }')".html_safe } safe_join [vite_legacy_polyfill_tag, import_tag] end
vite_legacy_polyfill_tag()
click to toggle source
Internal: Renders the vite-legacy-polyfill to enable code splitting in browsers that do not support modules.
# File lib/vite_plugin_legacy/tag_helpers.rb, line 25 def vite_legacy_polyfill_tag return if ViteRuby.instance.dev_server_running? name = vite_manifest.send(:manifest).keys.find { |file| file.include?('legacy-polyfills') } || raise(ArgumentError, 'Vite legacy polyfill not found in manifest.json') content_tag(:script, nil, nomodule: true, src: vite_asset_path(name)) end
vite_legacy_typescript_tag(name)
click to toggle source
Public: Same as `vite_legacy_javascript_tag`, but for TypeScript entries.
# File lib/vite_plugin_legacy/tag_helpers.rb, line 19 def vite_legacy_typescript_tag(name) vite_legacy_javascript_tag(name, asset_type: :typescript) end