Импорт существующего проекта JavaScript в проект Grunt/Brunch

Я смотрел выступление Пола Айриша, анонсировавшего Yeoman (www.yeoman.io ), и меня зацепила концепция запуска среды непрерывной сборки. Не удовлетворившись ожиданием приглашения йомена, я попробовал Grunt и Brunch. Оба легко устанавливаются, и я могу запускать новые проекты с минимальными усилиями.

Я не понимаю, как можно перенести существующий проект на любую платформу. Мой проект использует единое пространство имен и использует два соглашения для модулей (одно для создания экземпляра другого для утилиты ), каждое из которых заключено в само -выполнение анонимных функций, которые экспортируются в экземпляр или пространство имен.

У меня есть как минимум 200 модулей и еще много простых вспомогательных функций, экспортируемых в пространство имен; поэтому совершенно неэффективно использовать консоль для их создания в проекте grunt/brunch, а затем вручную импортировать каждый модуль по отдельности. Кроме того, я использую как минимум 15 различных -инструментов JavaScript сторонних разработчиков. Мне непонятно, как их ввести.

Каков наиболее эффективный способ перенести большой существующий проект в Grunt/Brunch с наименьшим количеством рефакторинга и поддержкой произвольных сторонних инструментов?

Обновление:из двух я нашел Бранч немного легче справиться. Если вы используете стандартный «скелет» (, который является «шаблоном» --, из командной строки {в папке, в которую вы хотите внести изменения} выполните «brunch new [имя проекта _] --скелет git ://github.com/brunch/simple -js -скелет.git" )для чистого JS вы получаете новую структуру папок, которая на самом деле довольно отзывчива.Все, что вы поместите в папку «приложение» (ваш собственный код )или папку «поставщик» (третья -сторона ), будет автоматически перекомпилировано для вас при редактировании файла (при запуске «brunch смотреть» ).

Это здорово, кроме. Согласно документации, вы управляете порядком, в котором скрипты поставщиков компилируются и объединяются вместе из файла Brunch config.coffee (текстового файла JSON ). Изменения в этом файле, кажется, не имеют никакого эффекта, поэтому вы получаете условия гонки сторонних разработчиков от плагинов, ожидающих других плагинов.

Кроме того, когда вы помещаете свой собственный код в автоматически -созданную папку 'app', вы получаете автоматически -скомпилированную в реальном -время, поскольку -вы -редактируете версию своего кода; но он недоступен. Brunch запутывает объект окна, поэтому мое первоначальное объявление пространства имен для window.myNameSpace терпит неудачу, и все последующие библиотечные вызовы пространства имен также терпят неудачу. Это как-то связано с модульной системой Brunch, для которой я не могу найти документации.

Я решил эту проблему, поместив свой класс пространства имен в папку «vendor», что обеспечило его присоединение к объекту окна; однако теперь есть состояние гонки :мое пространство имен не всегда доступно для всех моих модулей.

Проблема теперь в следующем:

После того как вы скопировали все свои внутренние и внешние библиотеки в проект Brunch, как настроить приложение для их загрузки в правильном порядке?

7
задан Christopher 12 July 2012 в 02:33
поделиться