module SvelteOnRails::Installer::Vite
def self.install_vite(major_version: nil, minimal_version: nil)
def self.install_vite(major_version: nil, minimal_version: nil) 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 puts '++ running «bundle exec vite install» ++' `bundle exec vite install` puts '++ vite installer finished ++' 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', major_version: major_version, minimal_version: minimal_version) end