0

我遇到了 ExecJS 的问题,因为它无法找到所需的运行时。我正在使用 Windows,并且我的计算机上同时安装了 Windows CScript 和 Node.js,但这些人都没有被调用。

结果,我无法运行任何涉及此问题的 rails 任务(我什至无法在 RubyMine 中加载我的 rake 列表来调用诸如 db:create 之类的操作来从一个新项目创建我的数据库。)

我能够从命令行访问 csript 和 node,并且我已经检查了我的环境变量,并且它们的正确文件位置在 PATH 中。还有其他东西破坏了我使用 ExecJS 的能力。有没有其他人有过类似的经历,你已经拥有了所有正确的东西,但还是有问题?

4

2 回答 2

1

当 Ruby 生成子进程以调用 CScript 或 Node 时,它​​将使用允许cmd.exe从命令行执行它们的相同规则。

但是,有时,注册表或环境变量中的内容会影响此过程。

在 RubyInstaller 项目中,我们收集了一系列可能是罪魁祸首的故障排除项目。

请检查COMSPEC环境变量是否设置为使用cmd.exe,而不是像 TCC/LE 或其他东西。

C:\>SET COMSPEC

此外,请检查您的注册表是否包含AutoRun密钥,这也会影响 Ruby。

C:\>REG QUERY "HKCU\Software\Microsoft\Command Processor"
C:\>REG QUERY "HKLM\Software\Microsoft\Command Processor"

如果您AutoRun在上述命令之一中看到一个键,则意味着设置为在每次启动新命令时自动执行cmd.exe某些内容,这在某些情况下很糟糕。

请按照“疑难解答”页面中有关如何删除它的说明进行操作。

这也会影响需要编译的 gem 安装,但如果你没有失败,那么问题可能是别的。

希望有帮助。

于 2012-04-24T11:58:20.227 回答
1

我遇到了类似的问题,尽管安装了 Node.js,但我的基本骨架应用程序无法运行,然后尝试了 therubyracer gem。最后,我决定在 Windows 上使用我的故障排除口头禅,“如有疑问,请以管理员身份运行”。所以我以管理员身份运行我的 rails cmd,之后它运行良好。

于 2012-07-28T23:28:29.337 回答