2015-10-15 32 views
2

簡單的問題:如何從紅寶石加載純.js文件?如何使用ruby gem commonjs加載純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 instructions,這裏是從失敗調用撬時,我得到(請注意,我加載目錄不是文件)。

[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/[email protected]/gems/commonjs-0.2.7/lib/commonjs/environment.rb:9:in `initialize' 

我很難過。任何想法可能發生什麼?

回答

3

自述文件中有錯誤。 CommonJS::Environment類的initialize方法中的第一個參數是runtime。它應該是:

require 'commonjs' 
require 'v8' 

runtime = V8::Context.new 
env = CommonJS::Environment.new(runtime, path: 'lib/example/js')