Для чего нужен therubyracer или libv8 в приложении rails?
Я работал над проектом, и у меня часто возникали проблемы с therubyracer и libv8, поэтому я решил их устранить. Казалось, единственной вещью, которая использовала их как зависимость, были менее рельсы, которые я хотел удалить в любом случае.
Мой главный вопрос: для чего они нужны и нужны ли они в обычном приложении, и если да, то почему?
2 ответа
Есть несколько вещей, для которых приложение Rails может использовать Javascript Runtime:
1) Rails Asset Pipeline требует Javascript Runtime для выполнения сжатия Javascript.
2) Некоторым помощникам Rails ActionView, таким как javascript_include_tag, требуется Javascript Runtime для выполнения функций Javascript.
Не каждое приложение Rails использует эти возможности, поэтому причина, по которой гем therubyracer изначально закомментирован в вашем Gemfile; Кроме того, обратите внимание, что вы можете альтернативно использовать NodeJS в качестве среды выполнения Javascript.
Для подробностей смотрите:
http://guides.rubyonrails.org/asset_pipeline.html
http://www.rubydoc.info/docs/rails/ActionView/Helpers/JavaScriptHelper
http://www.rubydoc.info/docs/rails/ActionView%2FHelpers%2FAssetTagHelper%3Ajavascript_include_tag
Правильный "Rails" способ выполнения JavaScript на определенных страницах
rubyracer предоставляет следующие возможности:
1. We can write your ruby codes inside js codes.
2. We can invoke the js functions from ruby codes.
3. Manipulation of javscript objects & the passing them to javascript functions.
Это несколько основных преимуществ использования драгоценного камня rubyracer. Пожалуйста, прочитайте полную информацию здесь