Rails 3.1 рекомендуемая практика для управления библиотекой javascript - PullRequest
2 голосов
/ 22 сентября 2011

Мне любопытно, каков рекомендуемый подход для организации и использования библиотечных javascripts (таких как Backbone, Underscore, Modernizr и т. Д.) В Rails.Я заметил несколько разных практик, поэтому, кажется, это немного сбивает с толку.

Существует ряд драгоценных камней, которые предоставляют возможность связывать такие вещи, как Modernizr, Backbone, Underscore и т. Д. Является ли это предпочтительным подходом в тех случаях, когда существует драгоценный камень?

Для случаев, когда гем не существует, имеет ли смысл использовать папку / public или / app / assets / javascripts и пройти по конвейеру?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Просто добавить что-то (ответ @DevinM замечательный), вот мои мысли об использовании JavaScript в Rails:

  • Если есть Gem, который объединяет библиотеку JavaScript (например, jquery-rails) Я бы придерживался этого:
    • Защищает библиотеку от вашего кода.
    • Автоматически добавляет библиотеки в рельсы (или хотя бы объясняет, как это сделать).
    • Помогает вам автоматически обновлять библиотеку с помощью bundle update, если вы хотите.
  • Если у Gem нет интеграции, держите ее под vendor/assets, как описано:
    • Гарантирует, что библиотека известна как внешняя.
    • Документируйте необходимость этой библиотеки где-нибудь (например, в вашем файле application.js)
  • Ваши собственные библиотеки вlib/assets как описано.
  • application.js или зависимые от контроллера файлы *.js в папке app/assets/javascripts.
  • Используйте application.js в основном для проводки, что означает, как интегрироватьдругие библиотеки в вашем приложении.Объясните, что означает код: использованная библиотека, ссылка на документацию, значение конфигурации.

Мой опыт показывает, что через некоторое время вы не помните, в чем причина библиотеки, поэтому некоторыедомашнее хозяйство помогает вам оставаться здоровым.

2 голосов
/ 22 сентября 2011

Я хотел бы взглянуть на Rails Guide по этому вопросу.

Активы могут быть размещены внутри приложения в одном из трех мест: app / assets, lib /assets или vendor / assets.

приложение / assets предназначено для активов, которыми владеет приложение, таких как пользовательские изображения, файлы JavaScript или таблицы стилей.

lib / assets для ваших собственных библиотек 'код, который на самом деле не вписывается в область применения приложения или тех библиотек, которые совместно используются приложениями.

vendor / assets предназначен для активов, которые принадлежат сторонним объектам, таким как код для плагинов JavaScript.

Что бы я сделал, поместив все JS-файлы, которые вы не поддерживаете, вендор / активы; если эта папка отсутствует, вы можете просто создать ее.А что касается использования драгоценных камней для ваших ресурсов, которые обычно подходят для более крупных платформ и библиотек, таких как jQuery, я бы не стал использовать их для таких вещей, как Backbone.js и другие, просто для того, чтобы поддерживать чистоту файла gemfile и уменьшить количество раздувания, которое вы можете увидеть при этом.

Если вам нужны какие-либо разъяснения, дайте мне знать и удачи в вашем заявлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...