Class: ViteRuby::CLI::Vite

Inherits:
Dry::CLI::Command
  • Object
show all
Defined in:
lib/vite_ruby/cli/vite.rb

Direct Known Subclasses

Build, Dev, SSR

Constant Summary collapse

CURRENT_ENV =
ENV['RACK_ENV'] || ENV['RAILS_ENV']

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.executable_optionsObject



6
7
8
9
10
# File 'lib/vite_ruby/cli/vite.rb', line 6

def self.executable_options
  option(:mode, default: self::DEFAULT_ENV, values: %w[development production test], aliases: ['m'], desc: 'The build mode for Vite')
  option(:inspect, desc: 'Run Vite in a debugging session with node --inspect-brk', aliases: ['inspect-brk'], type: :boolean)
  option(:trace_deprecation, desc: 'Run Vite in debugging mode with node --trace-deprecation', aliases: ['trace-deprecation'], type: :boolean)
end

.shared_optionsObject



12
13
14
15
16
# File 'lib/vite_ruby/cli/vite.rb', line 12

def self.shared_options
  executable_options
  option(:debug, desc: 'Run Vite in verbose mode, printing all debugging output', aliases: ['verbose'], type: :boolean)
  option(:clobber, desc: 'Clear cache and previous builds', type: :boolean, aliases: %w[clean clear])
end

Instance Method Details

#call(mode:, args: [], clobber: false, **boolean_opts) {|args| ... } ⇒ Object

Yields:

  • (args)


18
19
20
21
22
23
# File 'lib/vite_ruby/cli/vite.rb', line 18

def call(mode:, args: [], clobber: false, **boolean_opts)
  ViteRuby.env['VITE_RUBY_MODE'] = mode
  ViteRuby.commands.clobber if clobber
  boolean_opts.map { |name, value| args << "--#{ name }" if value }
  yield(args)
end