Подтвердить что ты не робот

Обновление Rails до angular 2

Я хотел бы обновить существующие Rails и приложение Angular 1.x. Я следую документации ng-upgrade и вижу, что существует множество зависимостей, включая systemjs, typescript, tsd и несколько других библиотек javascript. В идеале будет angular -2 драгоценный камень, который будет иметь все зависимости, но я не могу это найти. Затем я искал драгоценный камень для каждой зависимости, но не для tsd.

Имеет ли смысл перейти к пользовательской стратегии сборки, поэтому я могу использовать npm для управления пакетами javascript? Я прочитал эту статью, которая рекомендует gulp, но мне нравится удобство конвейера активов.

Может ли кто-нибудь указать мне на примеры успешного использования ng-upgrade с проектом rails? Использует ли это пользовательское решение сборки, например gulp, или использует ли он конвейер ресурсов?

4b9b3361

Ответ 1

Мое основное предложение пока не обновляется до Angular2, все еще сильно развивается, и вы столкнетесь с множеством таких проблем, как не найти драгоценный камень для рельсов.

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

Мое основное предложение - пойти с webpack, другие варианты браузера или gulp (и другие), что в основном зависит от вкуса. В целом, настройка конвейера для angular2 сложна, вы должны заботиться о файлах .d.ts через typings (это обновленная версия tsd, которая теперь устарела), вы вам нужно перевести ваш typescript через tsc и, возможно, через babel тоже, если вы хотите использовать async/await (что действительно круто). Вы потеряете возможность ссылаться на свои файлы в рельсах типа image_path и т.д., Используя настраиваемый конвейер, чтобы вы тоже учли это.

Typescript гораздо сложнее компилировать, чем простые файлы coffeescript, вы зависите от всех других файлов, которые он ссылается, так как ему нужно скомпилировать чек против него, не ожидайте чего-то простого.

Если вы действительно хотите работать с Rails и Angular (2 или нет), правильный способ справиться с этим - иметь два отдельных проекта, один с Rails приложение и одно с контуром AngularJS. Таким образом, вы вызываете особую озабоченность, у вас может быть собственный конвейер для angular2 без влияния на Rails, и вы будете вынуждены правильно кодировать ваше приложение angular2, используя Rails в качестве JSON API, как и должно быть.

Ответ 2

Мое решение состояло в том, чтобы максимально упростить его, не используя webpack или конвейер активов. Я помещал файлы ts в public и настраивал рельсы для обслуживания ресурсов npm по конвейеру.

В качестве примера я привел проект стартера с этой структурой: https://github.com/jonnysamps/rails-ng2-starter

Во многих отношениях это имеет преимущества наличия отдельных проектов backend/frontend, но вместе сохраняет весь код.

Ответ 3

использовать угловой символ

gem 'angularjs-rails', '~> 1.4', '>= 1.4.8'

вставить в application.js

  //= require angular

Ответ 4

Вы можете использовать http://bower.io/#install-bower, и вы можете добавить два файла в ваше приложение rails .bowerrc и bower.json, которое похоже на GemFile