
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 флага )
Эта группа больше не существует