Commit 13d2ee31 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Emplea scripts npm para tareas comunes, limpia

Adopta el uso de scripts a nivel de npm (definidos en el fichero
package.json) ajustados al ciclo de vida establecido para realizar
tareas recurrentes, como preparar la aplicación para ser lanzada,
generar la salida compilada o lanzar tests. Estos a su vez se apoyan en
las tareas gestionadas por Grunt, por lo que sólo se han reorganizado
detalles y se han envuelto con esta capa estándar a nivel de npm.

Ajusta tareas CI, tareas Grunt y documentación en README.
parent 7228a24a
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@
    WEB_BUILD_IMAGE_NAME: registry.gitlab.com/redmic-project/docker/web-build
    WEB_BUILD_IMAGE_TAG: latest
  before_script:
    - type yarn grunt java
    - yarn install
    - type npm
    - npm run install
  cache:
    paths:
      - node_modules/
@@ -16,8 +16,6 @@
prepare-unbuilt-version:
  extends: .web-build
  stage: pre-build
  script:
    - grunt preBuild
  dependencies: []
  tags:
    - custom-runner
@@ -42,7 +40,7 @@ prepare-built-version:
  extends: .web-build
  stage: build
  script:
    - grunt
    - npm pack
  dependencies: []
  artifacts:
    name: ${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}
+23 −3
Original line number Diff line number Diff line
@@ -9,10 +9,10 @@ Cliente web de REDMIC.

## Entorno de desarrollo

Una vez clonado el repositorio en el entorno local de desarrollo y satisfechas las dependencias base del sistema, es posible instalar las dependencias necesarias que define el proyecto y arrancar el servicio:
Una vez clonado el repositorio del proyecto en el entorno local de desarrollo y satisfechas las dependencias base del sistema (`npm/Node.js`, `grunt-cli` y `Yarn`), es posible instalar sus dependencias y arrancar el servicio en modo de desarrollo:

```sh
yarn install
npm run install

OAUTH_URL=https://redmic.grafcan.es/api/oauth \
OAUTH_CLIENT_ID=app \
@@ -33,12 +33,23 @@ Si todo ha ido correctamente, el servicio *REDMIC web* estará accesible en <htt

Es posible personalizar los puntos de conexión hacia la parte servidora y otros ajustes, según se necesite.

Para facilitar las tareas repetitivas, se han creado una serie de tareas ejecutables mediante **Grunt**. Más información en <https://gitlab.com/redmic-project/client/web/-/wikis/grunt>.
Para facilitar las tareas repetitivas, se han creado una serie de tareas ejecutables mediante **Grunt**, que a su vez se referencian desde comandos de **npm**. Más información en <https://gitlab.com/redmic-project/client/web/-/wikis/grunt>.

## Compilación

Para optimizar la ejecución es necesario realizar un proceso de "compilación" de la aplicación.

Se puede generar la salida compilada simplemente lanzando los siguientes comandos (cuidado, es un proceso pesado):

```sh
npm run install
npm pack
```

> Internamente se lanzarán otros comandos orquestados mediante **Grunt** (que también podrían ejecutarse de manera concreta si fuera necesario).

Esto generará un directorio con el código compilado de salida (`dist/`) junto con un fichero comprimido que contiene dicha salida y otros recursos necesarios para lanzar la aplicación (`redmic-project-web-<version>.tgz`).

Más información en <https://gitlab.com/redmic-project/client/web/-/wikis/dojo-compile>.

## Páginas estáticas
@@ -55,6 +66,15 @@ Por defecto, `Prerender` consultará al servicio mediante protocolo HTTP. Si no

Se ha preparado una batería de pruebas, tanto unitarias como funcionales, que permiten evaluar el estado del proyecto a medida que se aplican cambios en la base de código.

Se puede comenzar la ejecución de tests lanzando los siguientes comandos:

```sh
npm run install
npm test
```

> Internamente se lanzarán otros comandos orquestados mediante **Grunt** (que también podrían ejecutarse de manera concreta si fuera necesario).

Más información en <https://gitlab.com/redmic-project/client/web/-/wikis/test-main>.

### Ejemplos de ejecución de tests locales
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ module.exports = function(grunt) {
			stdout: true
		},
		command: [
			'yarn install --prod=false'
			'yarn install --prod=false --ignore-optional --ignore-scripts'
		].join('; ')
	});
};
+1 −1
Original line number Diff line number Diff line
module.exports = function(grunt) {

	grunt.registerTask('build',
		['buildStyles', 'copy:resources', 'copy:leaflet', 'copy:pdfjs', 'buildApp', 'packageApp']);
		['clean:build', 'buildStyles', 'copy:resources', 'copy:leaflet', 'copy:pdfjs', 'buildApp']);
};

grunt/task/packageApp.js

deleted100644 → 0
+0 −16
Original line number Diff line number Diff line
module.exports = function(grunt) {

	grunt.registerTask('packageApp',
		'Empaqueta la aplicación construida con todo lo necesario para distribución',
		function() {

		grunt.config('shell.packageApp', {
			options: {
				stdout: true
			},
			command: 'npm pack'
		});

		grunt.task.run(['shell:packageApp']);
	});
};
Loading