我对蛋白石完全陌生。我只是在测试如何使用它,方法是在本地文件中编写简单的 Ruby 代码,使用 编译它opal -c test.rb > test.js
,然后使用node test.js
. 当我想要的所有代码都在 test.rb 中时,这可以正常工作。但是,如果第一行有 test.rb,require_relative 'other_file'
并且 other_file.rb 与 test.rb 存在于同一目录中,则使用 node 执行时会失败。我收到一条这样开头的错误消息:
/Users/huliax/projects/scratch/opaltest/test.js:5022
throw exception;
^
LoadError: can't find file: "other_file" in:
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/opal-0.11.0/opal
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/opal-0.11.0/stdlib
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/opal-0.11.0/lib
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/ast-2.3.0/lib
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/ast-2.3.0/lib
- /Users/huliax/.rvm/gems/ruby-2.5.0@car/gems/parser-2.3.3.1/lib
这表明对我来说 require_relative 应该没有问题。我没有收到任何编译时错误。我也尝试过将 other_file.rb 独立编译为 js,但这并没有帮助。我只能假设我误解了一些事情。我需要做什么才能使其正常工作?
最终,我的目标是尝试使用 Opal 将整个 ruby 库/gem(由很多文件组成)编译为 JavaScript。