2

簡単な質問: ruby​​ から純粋な .js ファイルをロードする方法は?

私の現在の戦略は、Ruby 内から .​​js ファイルをロードすることで、commonjs gemを使用することです。指示がjs ディレクトリをロードしてからファイルを要求することであることを認識しています。残念ながら、nil を文字列に変換しようとしてディレクトリをロードしようとすると、TypeError が発生し続けます。

これが私のファイル構造です:

.
├── Gemfile
├── LICENSE.md
├── README.md
├── Rakefile
├── lib
│   ├── example
│   │   ├── js
│   │   │   ├── data.json
│   │   │   ├── expressions.js
│   │   │   └── javascript_i_want_to_run.js
│   │   └── version.rb
│   └── example.rb
├── example.gemspec
├── script
└── test

commonjs の指示に従って、 pryから呼び出したときに発生する失敗を次に示します (ファイルではなくディレクトリをロードしていることに注意してください)。

[1] pry(main)> require 'commonjs'
=> true
[2] pry(main)> env = CommonJS::Environment.new(path: 'lib/example/js')
TypeError: no implicit conversion of nil into String
from /usr/local/rvm/gems/ruby-2.1.5@rails4/gems/commonjs-0.2.7/lib/commonjs/environment.rb:9:in `initialize'

私は困惑しています。何が起こっているのでしょうか?

4

1 に答える 1

4

readmeに誤りがあります。classinitializeのメソッドの最初のパラメーターは です。そのはず:CommonJS::Environmentruntime

require 'commonjs'
require 'v8'

runtime = V8::Context.new
env = CommonJS::Environment.new(runtime, path: 'lib/example/js')
于 2015-10-15T16:51:05.450 に答える