Andrew
02.08.2016
07:08:22
https://www.youtube.com/watch?v=6NRkZHjDOw0
вот вкратце как работает sails
Построен на express, похож на ruby on rails по архитектуре,
Google
Andrew
02.08.2016
07:13:55
При старте сервера генерируется папка .tmp/public - в нее копируется все содержимое папки assets, то есть js, css, .... Но html страница которая отображается методом res.view("путь_в_папке_view"); настроенного в роутере контроллера нигде не имеется, рендерится на лету
поэтому cli проект если сгенерирует в одной папке, мы его не отобразим
Dmitry
02.08.2016
07:49:51
так а нужен на выходе SPA ?
sails станет чисто апишкой для данных ?
Andrew
02.08.2016
07:51:08
Да
По факту не совсем, нужна страница входа (логина) обычная Sails
Он ее рендерит, на ней практически нет JS, и нет Angular, при успешном логине он рендерит другую страницу, которая как раз использует Angular
С первым ангуларом это было проще простого
kaflan
02.08.2016
07:55:36
а со вторым какие сложности? написал компонент который отрабатует и все
Andrew
02.08.2016
07:55:50
Подскажите одну вещь, вот ручками, что бы по канонам подключить его фронтенд библиотеку без запуска лишних скриптов / серверов, допустим папка с node_modules и сорцы копировались в .tmp/public и доступны по адресу localhost:1337/app/main.js | app.component.js и т.п.
Мне достаточно ли будет подключить в одной странице, которая станет SPA, библиотеки (их порядок и точный список везде различается от источника к источнику) и запустить System config, после чего System.import и все?
подключить его *как фронтенд библиотеку
Alexey
02.08.2016
07:56:28
бло
не туда извиниюсь)
Google
Anthony
02.08.2016
07:59:33
@imload а что мешает тебе при запуске бэкенда запускать какой-нибудь gulp-task и билдить ангуляр-апп в .tmp/public ? А страницу логина разруливать серверными роутами
Andrew
02.08.2016
08:17:52
Если через Cli билдить, как поменять папку назначения с dist на ../.tmp/public
?
Ищу конфиг
Maksim
02.08.2016
09:32:16
Там в корне js
cli-build-чтототам
Nikita
02.08.2016
09:32:46
всем привет
Maksim
02.08.2016
09:32:47
Расширение js
Внутри создается angular2app
И задаются его опции
Вот там можно задать все что угодно, или переопределить через прототайп
Опции от туда попадают в embercli
На базе нее работает ангуляр кли
По-моему тебе интересно destDir
Я на обеде, скоро вернусь в офис и смогу точно сказать, если сам не найдешь
Andrew
02.08.2016
10:03:08
Спасибо большое
Кто нибудь собирает gulp'ом?
Для использования jade, less, компиляции typescript
Или можно как то объединить с clil build
Google
Alexey
02.08.2016
10:11:05
я настроил сборку less в cli, немного костыльно но работает
var compileLess = require('broccoli-less-single');
var mergeTrees = require('broccoli-merge-trees');
...
module.exports = function(defaults) {
var appTree = new Angular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/**/*.+(js|js.map)',
'es6-shim/es6-shim.js',
'reflect-metadata/**/*.+(ts|js|js.map)',
'rxjs/**/*.+(js|js.map)',
'@angular/**/*.+(js|js.map)',
'ng2-translate/**/*.+(js|js.map)',
'ng2-bootstrap/**/*.+(js|js.map)',
'codemirror/**/*.+(js|js.map)',
'moment/moment.js',
'font-awesome/**/*',
'flag-icon-css/flags/**/*'
]
});
var less = mergeTrees(_.map(['common.less', 'app.less'], function(sassFile) {
return compileLess([__dirname + '/less'], sassFile, sassFile.replace(/.less$/, '.css'), {
paths: ['.', 'node_modules']
});
}));
return mergeTrees([appTree, less], { overwrite: true });
};
код для пробрасывания кастомных билд-параметров даже показывать не хочу, броколи ужасен(
Andrew
02.08.2016
10:18:26
ng build все запускает?
в чем преимущества перед gulp (и есть ли они)?
можно же через cli управлять приложением, создавать компоненты и т.п. запускать тесты, а билдить галпом?
Alexey
02.08.2016
10:19:44
> ng build все запускает?
да
gulp я бы вообще не использовал, зачем он сейчас когда есть более удобный вебпак
для локальной разработки все равно нужен вебсервер, желательно с live reload, в вебпак и cli они встроены
ну и держать одновременно webpack и cli тоже не вижу смысла когдо можно обойтись одним cli
или уж одним вебпаком
Andrew
02.08.2016
10:40:23
Gulp же легкий, настройка лайврелоада там занимает три строки, какие есть причины уйти от Gulp ?
Алексей
02.08.2016
10:41:05
Alexey
02.08.2016
10:42:16
ну это до поры до времени, тут писал кто-то что cli переедет на вебпак в скором времени
Andrew
02.08.2016
10:42:36
официально или слухи
https://github.com/angular/angular-cli/issues/116
вроде сказано нет планов на webpack
Хотя есть ветка angular-cli-webpack..
https://github.com/angular/angular-cli/tree/webpack
Алексей
02.08.2016
10:45:08
не будет этого - они будут поддерживтаь возможность работать на webpack - о переходе на вебпак пока никто не говорит ( хотя учитывая наличия бранча - это вполне вероятно - хотя мне кажеться более вероятно что будет выбор - мол броколли или вебпак )
Brocolli не такой уж и сложный и ужасный - нужно его просто немного подучить
https://github.com/jalada/broccoli-jspm-jsx-jade-sass-example/blob/master/Brocfile.js
Alexey
02.08.2016
10:46:42
возможно
в любом случае точно не gulp-ом я бы советовал собирать проекты
Алексей
02.08.2016
10:47:46
да - gulp давно устарел в качестве bundler-а
Google
Alexey
02.08.2016
10:48:13
простой пример, нужно подключить font-awsome
там есть css/less/saas с относительными путями к файлам шрифтов
otf/eot и т.д
как это нормально подключить гулпом я не знаю
в вебпаке достаточно прописать лоадер для шрифтов и они все подхватятся, переместятся в ваш dist/ и в css урлы будут до них разреловлены
автоматически
Andrew
02.08.2016
10:49:53
круто
Значит либо webpack либо брокколи
Sergey
02.08.2016
10:50:44
Хм. Сам ng2 по сути статичен
чем ты там отдашь html вообще значения не имеет
главное, чтобы пути были прописаны правильно
Алексей
02.08.2016
10:51:14
Sergey
02.08.2016
10:51:37
если ты юзаешь System.js, то тут и кроется жопа
он настраивается очень сложно
т.е. там вот эти map за это все отвечают
Alexey
02.08.2016
10:52:19
в этом и разница, с вебпаком нет дополнительного императивного кода что откуда взять куда положить, ваш исходный код сам является достаточным билд конфигом
Sergey
02.08.2016
10:52:25
и нужно правильно пробросить куда ему можно за ними ходить
Maksim
02.08.2016
10:52:55
Sergey
02.08.2016
10:53:01
Google
Sergey
02.08.2016
10:53:50
И да, скоро cli будет на webpack2, так что думаю его и стоит заюзать для сборки
Alexey
02.08.2016
10:54:53
@matochu А ты в проде все модули через system.js грузишь по запросу?
Sergey
02.08.2016
10:57:05
Нет, я собираю через systemjs-builder
в dev у меня отдельно собирается только lib.js, а код из app/ собирается typescript
Alexey
02.08.2016
10:58:32
ну cli бы тебе помог, т.к он все это сам делает
там тоже вроде systemjs-builder под капотом
Sergey
02.08.2016
10:58:48
Когда я это настраивал cli не было
Да, я смотрел. Но я уже разобрался и настроил под себя.
Когда они перелезут на webpack, вот тогда я на него посмотрю
Алексей
02.08.2016
11:03:09
Offtopic: у кого будут проблемы с обновлением angular cli - не забудьте прочитать https://github.com/angular/angular-cli#updating-angular-cli
Andrew
02.08.2016
11:04:59
А что там про ng init ?
Проверяет файлы
Алексей
02.08.2016
11:06:17
ng init провериряет автогенерированные файлы ( но ng-init нужно вызывать только если angular-cli ставил без -g флага )
Эта группа больше не существует