0

最近、 Windows と Linux の両方にインストールruby 2.0.0p247しました。rails 4.0.0

しかし、与えたrails new Myappbundle install

rails s問題なくWindowsで使用を開始できますが、LinuxではGemfileに追加gem 'therubyracer'(またはコメントアウト)することで解決できるjavascriptランタイムエラーが発生します。

私の質問は、手動で therubyracer を追加するまで、なぜ Windows では機能するのに Linux では機能しないのかということです。

4

1 に答える 1

3

Rails は、javascript ランタイム環境を提供するためにexecjsに依存しています。

Execjs は、ホスト OS によって提供される場合、ネイティブの JavaScript ランタイムを使用します。これは、MacOSX (JavascriptCore を搭載) と Windows (JScript を搭載) の場合です。

Linux には「デフォルトの js エンジン」はありません。Linux は単なるドライバーのセットであるため、これは当然のことです。カーネルとベースレイアウトの上に追加するデスクトップ環境は、あなた次第です。使用する JavaScript の実装も同様です。最も一般的な 2 つは、node.js と rhino (mozilla js インタープリター) です。

Therubyracer は実際には、 node.js の背後にあるエンジンである v8 のバイナリ コピーを埋め込んだ単なる gem です。

于 2013-09-18T13:03:08.060 に答える