-
serve[task por defecto] Inicia un servidor con liveReload escuchando sobre los archivos de la carpetaapp/, actualizando automáticamente al detectar cambios en los archivos, así como compilando los archivos .less a .css. -
serve-docsInicia servidores para visualizar la documentación:- ng-docs en el url
<app-url>/docs/:9000 - ui-framework (outdated) en
<app-url>/ui-framework/:9001
- ng-docs en el url
-
serve-ngdocsInicia el servidor para visualizar el ng-doc de la aplicación en el url<app-url>/docs/:9000 -
compile-ngdocsCompila la documentación de ng-docs de la aplicación -
buildGenera la versión de producción de la aplicación, en la carpetapublic/. Aplicando concatenación, minificación y compresión con gzip, además de copiar recursos (fuentes e imágenes) -
cleanLimpia la carpetapublic/. ya es ejecutada automaticamente conbuild
-
injectorEjecuta el conjunto de tareas de inyección de recursos enapp/:css-injector,js-injector,serverConf-injector -
css-injectorEjecuta las tareas de inyección de archivos .css de bower y de estilos propios de la aplicación -
js-injectorEjecuta las tareas de inyección de archivos .js de bower y de componentes Javascript de la aplicación -
serverConf-injectorGenera el archivotrulii.serverConf.jsdependiendo de la presencia o ausencia de la bandera--prodexplicada más adelante -
copy-resourcesEjecutacopy-fontsycopy-imgpara copiar las fuentes e imágenes desdeapp/csshastapublic/css
js-hintEjecuta el linter js-hint sobre los archivos .js dentro deapp/
gulp <task> --prod
Mediante gulp se puede indicar a la aplicación con qué servidor se va a comunicar.
En la raíz del proyecto existe un archivo llamado trulii.serverConf.json que contiene los datos para inyectar en app/ el Servicio de Angular que indica a la aplicación si va a comunicarse con el servidor de desarrollo (local) o e de producción
Para instalar todas las herramientas necesarias para trabajar el front end basta cn ejecutar los siguientes comandos:
$ npm install
$ bower install####Instalar Gulp de forma global
Dependiendo de tus preferencias puede que quieras instalar gulp de manera global:
$ sudo npm install -g gulp
####Estructura de archivos de Gulp
Los tasks de gulp se encuentran separados en varios archivos dependiendo del dominio de los tasks que contienen. Así como tambien existe un archivo config.jsen la raíz, que contiene todos los objetos de configuración utilizados (rutas de archivos y objetos de opciones de plugins utilizados)
|-- gulp/
|-- tasks/
|-- all.js
|-- build.js
|-- html.js
|-- js.js
|-- ngdocs.js
|-- serve.js
|-- styles.js
|-- test.js
|-- ui_framework.js
|-- config.js
- moment-timezone
El archivo main de la librería moment-timezone especificado en su archivo bower.json da problemas al ser pasado por uglify ya que contenien varias IIFE anidadas, por lo que es necesario agregar el prefijo
.minantes de la extensión .js en el keymaindel archivo bower.json de la misma para poder hacer un build exitoso.
##Angular Unit Testing with Karma and Jasmine
- Karma
- Karma-jasmine
- Karma-chrome-launcher
- Karma-ng-html2js-preprocessor
$ npm install- Angular-mocks(Same version of Angular project)
- Karma-read-json
$ bower installLos tests están separados por controllers, directives y services. En la carpeta mock se encuentran los json con data fake para hacer las pruebas y no tener que estar declarando dentro de los specs.
tests
├── controllers
│ └── home.controller.spec.js
├── directives
│ └── navbar.directive.spec.js
├── mock
│ ├── activities.json
│ ├── cities.json
│ ├── generalinfo.json
│ └── topics.json
└── services
└── contact.service.spec.js
karma start karma.conf.jsgulp test