Module: VitePadrino::TagHelpers
- Defined in:
- lib/vite_padrino/tag_helpers.rb
Overview
Public: Allows to render HTML tags for scripts and styles processed by Vite.
Instance Method Summary collapse
-
#vite_asset_path(name, **options) ⇒ Object
Public: Resolves the path for the specified Vite asset.
-
#vite_client_tag ⇒ Object
Public: Renders a script tag for vite/client to enable HMR in development.
-
#vite_javascript_tag(*names, type: 'module', asset_type: :javascript, skip_preload_tags: false, skip_style_tags: false, crossorigin: 'anonymous', **options) ⇒ Object
Public: Renders a <script> tag for the specified Vite entrypoints.
-
#vite_react_refresh_tag ⇒ Object
Public: Renders a script tag to enable HMR with React Refresh.
-
#vite_stylesheet_tag(*names, **options) ⇒ Object
Public: Renders a <link> tag for the specified Vite entrypoints.
-
#vite_typescript_tag(*names, **options) ⇒ Object
Public: Renders a <script> tag for the specified Vite entrypoints.
Instance Method Details
#vite_asset_path(name, **options) ⇒ Object
Public: Resolves the path for the specified Vite asset.
Example:
<%= vite_asset_path 'calendar.css' %> # => "/vite/assets/calendar-1016838bab065ae1e122.css"
21 22 23 |
# File 'lib/vite_padrino/tag_helpers.rb', line 21 def vite_asset_path(name, **) asset_path vite_manifest.path_for(name, **) end |
#vite_client_tag ⇒ Object
Public: Renders a script tag for vite/client to enable HMR in development.
6 7 8 9 10 |
# File 'lib/vite_padrino/tag_helpers.rb', line 6 def vite_client_tag return unless src = vite_manifest.vite_client_src content_tag(:script, nil, src: src, type: 'module') end |
#vite_javascript_tag(*names, type: 'module', asset_type: :javascript, skip_preload_tags: false, skip_style_tags: false, crossorigin: 'anonymous', **options) ⇒ Object
Public: Renders a <script> tag for the specified Vite entrypoints.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/vite_padrino/tag_helpers.rb', line 26 def vite_javascript_tag(*names, type: 'module', asset_type: :javascript, skip_preload_tags: false, skip_style_tags: false, crossorigin: 'anonymous', **) entries = vite_manifest.resolve_entries(*names, type: asset_type) = javascript_include_tag(*entries.fetch(:scripts), crossorigin: crossorigin, type: type, extname: false, **) << vite_preload_tag(*entries.fetch(:imports), crossorigin: crossorigin) unless << stylesheet_link_tag(*entries.fetch(:stylesheets)) unless end |
#vite_react_refresh_tag ⇒ Object
Public: Renders a script tag to enable HMR with React Refresh.
13 14 15 |
# File 'lib/vite_padrino/tag_helpers.rb', line 13 def vite_react_refresh_tag vite_manifest.react_refresh_preamble&.html_safe end |
#vite_stylesheet_tag(*names, **options) ⇒ Object
Public: Renders a <link> tag for the specified Vite entrypoints.
46 47 48 49 |
# File 'lib/vite_padrino/tag_helpers.rb', line 46 def vite_stylesheet_tag(*names, **) style_paths = names.map { |name| vite_asset_path(name, type: :stylesheet) } stylesheet_link_tag(*style_paths, **) end |
#vite_typescript_tag(*names, **options) ⇒ Object
Public: Renders a <script> tag for the specified Vite entrypoints.
41 42 43 |
# File 'lib/vite_padrino/tag_helpers.rb', line 41 def vite_typescript_tag(*names, **) vite_javascript_tag(*names, asset_type: :typescript, **) end |