class Opal::CliRunners::Nodejs
def self.call(data)
def self.call(data) (data[:options] ||= {})[:env] = { 'NODE_PATH' => node_modules } argv = data[:argv].dup.to_a argv.unshift('--') if argv.any? opts = Shellwords.shellwords(ENV['NODE_OPTS'] || '') SystemRunner.call(data) do |tempfile| [ 'node', '--require', "#{DIR}/source-map-support-node", *opts, tempfile.path, *argv ] end rescue Errno::ENOENT raise MissingNodeJS, 'Please install Node.js to be able to run Opal scripts.' end
def self.node_modules
def self.node_modules ENV['NODE_PATH'].to_s.split(OS.env_sep).tap do |paths| paths << NODE_PATH unless paths.include? NODE_PATH end.join(OS.env_sep) end