class VueCli::Rails::Engine

Public Class Methods

start_wds!() click to toggle source
# File lib/vue_cli/rails/engine.rb, line 41
def self.start_wds!
  fork do
    config = Configuration.instance
    port = config['devServer']&.dig('port')
    if port
      running = %x`lsof -i:#{port} -sTCP:LISTEN -Pn`&.chop.presence&.split("\n")
      pid = running&.dig(1)&.split(/\s+/, 3)&.dig(1)
      Process.kill('INT', pid.to_i) if pid.present?
    end

    cmd = config['launch_dev_service'].presence || 'vue-cli-service serve'
    config.node_env.exec(cmd)
  end
end