5

我正在尝试在 cygwin (windows7) 上运行 Rails 入门博客。我收到以下错误消息:

Welcome#index 中的 ExecJS:: RuntimeError

module.js:340
    throw err;
          ^
Error: Cannot find module 'C:\tmp\execjs20130903-50672-1vn7gqc.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

  (in /usr/lib/ruby/gems/1.9.1/gems/turbolinks-1.3.0/lib/assets/javascripts   /turbolinks.js.coffee)

节点已安装。

这是之后

$rails generate controller welcome index
$rails s

我在 cygwin 上运行 Rails 4.0 任何想法为什么会发生这种情况?

谢谢

乌布雷加琼

4

2 回答 2

2

我遇到了这个错误,它与临时文件的路径错误有关。我能够通过更改以下两个文件来修复它\gems\[ruby version]\gems\execjs-2.0.2\lib\execjs。(可能在 中找到\usr\lib\ruby\,但这取决于 Ruby 的安装方式。我使用的是 RVM,所以我的不同。)

external_runtime.rb

compile_to_tempfile(source) do |file|
     extract_result(@runtime.send(:exec_runtime, file.path))
  end
end

应该改为

compile_to_tempfile(source) do |file|
    filepath = file.path
    if ExecJS.cygwin? && @runtime.name == "JScript"
      IO.popen("cygpath -m " + file.path) { |f| filepath = f.read }
      filepath = filepath.gsub("\n","")
    end
    extract_result(@runtime.send(:exec_runtime, filepath))
  end
end

模块.rb

end在最后两个s之前添加它。

def cygwin?
  @cygwin ||= RbConfig::CONFIG["host_os"] =~ /cygwin/
end

在此之后重新启动您的 Rails 服务器,如果幸运的话,它应该可以工作。

来源:https ://github.com/sstephenson/execjs/issues/78

于 2014-04-02T19:55:17.490 回答
0

不要做任何事情只是去 application/assets/javascript/application.js 并删除

'//'

//=需要涡轮链接

=需要涡轮链接

这将基本上从文件中取消注释该行当我在通过 RAILS 教程的默认 rails 服务器中遇到类似错误时,这一步完成了我的工作。我正在使用 Windows 10 PC,这解决了我的问题

于 2017-11-16T13:55:04.040 回答