NodeJS / ExpressJS: Обслуживание одного сцепленного файла JS в производстве - PullRequest
1 голос
/ 16 октября 2011

Я работаю с множеством отдельных файлов JS, обслуживаемых так:

<script defer src="/js/libs/jquery.min.js"></script>
<script defer src="/js/libs/plugins.js"></script>

<!-- application core -->
<script defer src="/js/application.js"></script>

<!-- modules -->
<script defer src="/js/modules/router.js"></script>
<script defer src="/js/modules/feed.js"></script>
<script defer src="/js/modules/files.js"></script>
<script defer src="/js/modules/members.js"></script>
<script defer src="/js/modules/sharebar.js"></script>
<script defer src="/js/modules/utils.js"></script>

В производстве я использую connect-assetmanager , чтобы объединить все эти файлы в один script.js. Как я могу динамически изменить свой сайт layout.jade, чтобы обслуживать этот единственный файл JS следующим образом?

<script defer src="/js/script.js"></script>

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

В итоге я использовал RequireJS , так как с его функциями оптимизации вы можете создать один файл JS (main.js) для производства.При разработке все файлы представляют собой отдельные файлы JS, которые загружаются асинхронно, а в процессе работы эти файлы объединяются в один большой файл js.

Суть в том, что часть <head> вашей страницы (или где бы вы ни загружали свои скрипты) осталась неизменной при производстве и разработке.

<script data-main='/js/main.js' src='/js/plugins/require.js'>
1 голос
/ 20 октября 2011

Зачем вести себя по-разному между производством / разработкой?Это, вероятно, в конечном итоге укусит вас в задницу, и AFAICT connect-assetmanager на самом деле не добавляет помех в цикл разработки, поэтому просто используйте его все время и не беспокойтесь об этом.

Однако, есливы должны просто посмотреть на значение process.env['NODE_ENV'] и условное предложение в layout.jade.

if production
  script(src="/js/script.js")
else
  script(src="/js/libs/jquery.min.js")
  script(src="/js/libs/plugins.js")
  #and so so
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...