module SvelteOnRails::Installer::Vite
def self.install_vite
def self.install_vite iu = SvelteOnRails::Installer::Utils puts '-' * 80 gu = SvelteOnRails::GemUtils if gu.check_gem_version('vite_rails') puts "vite_rails already installed, skipping this part." else # check non-existence iu.check_file_not_exists('config/vite.json') iu.check_file_not_exists('vite.config.ts') iu.check_folder_not_exists('app/frontend') # install gu.install_gem('vite_rails') Dir.chdir(Rails.root) do `bundle exec vite install` end end # check existence iu.check_file_exists('config/vite.json') iu.check_file_exists('vite.config.ts') iu.check_file_exists('package.json') iu.check_file_exists('package-lock.json') iu.check_file_exists('app/frontend/entrypoints/application.js') iu.check_folder_exists('app/frontend') # check npm package version ni = SvelteOnRails::Installer::Npm ni.install_or_update_package('vite', minimal_version: [6, 1]) end