module ViteHanami::Installation
Internal: Extends the base installation script from Vite Ruby to work for a typical Hanami app.
Constants
- HANAMI_TEMPLATES
Public Instance Methods
install_sample_files()
click to toggle source
Override: Inject the vite client and sample script to the default HTML template.
Calls superclass method
# File lib/vite_hanami/installation.rb, line 30 def install_sample_files super inject_line_before root.join('apps/web/templates/application.html.erb'), '</head>', <<-HTML <%= vite_client %> <%= vite_javascript 'application' %> HTML end
setup_app_files()
click to toggle source
Override: Setup a typical apps/web Hanami app to use Vite.
# File lib/vite_hanami/installation.rb, line 11 def setup_app_files cp HANAMI_TEMPLATES.join('config/hanami-vite.json'), config.config_path inject_line_after root.join('config/environment.rb'), 'environment :development do', ' middleware.use(ViteRuby::DevServerProxy, ssl_verify_none: true) if ViteRuby.run_proxy?' inject_line_after_last root.join('apps/web/application.rb'), 'include Web::Assets::Helpers', ' include ViteHanami::TagHelpers' inject_line_after root.join('apps/web/application.rb'), 'configure :development do', <<-CSP # Allow @vite/client to hot reload changes in development security.content_security_policy( security.content_security_policy .sub('script-src', "script-src 'unsafe-eval' 'unsafe-inline'") .sub('connect-src', "connect-src ws://\#{ ViteRuby.config.host_with_port }") ) CSP append root.join('Rakefile'), <<~RAKE require 'vite_hanami' ViteRuby.install_tasks RAKE end