4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/vite_react/node_manager.rb', line 4
def start!
return if @started
@started = true
node_executable = ViteReact.config.node_path ||
`which bun`.strip
unless node_executable && !node_executable.empty?
Rails.logger.error("Node executable not found. SSR functionality disabled.")
return
end
server_script = File.expand_path("/node/ssr-server.ts", __FILE__)
port = ViteReact.config.node_server_port
command = "#{node_executable} #{server_script} --expirimental-strip-types --port=#{port}"
Rails.logger.info("Starting vite_react_ssr Node server with: #{command}")
@pid = Process.spawn(command, out: "/dev/null", err: "/dev/null")
Rails.logger.info("vite_react_ssr Node server started with pid: #{@pid}")
sleep 1
at_exit { stop! }
rescue => e
Rails.logger.error("Failed to start vite_react_ssr Node server: #{e.message}")
end
|