Hero

Como validar archivos de Bower

Noviembre 28, 2014

enzo
JavaScript

Si queremos que las personas puedan utilizar nuestras bibliotecas a través de Bower tenemos que seguir algunos pasos simples.

  • Añadir archivo bower.json a nuestro el proyecto.
  • Crear un release de nuestro proyecto de que coincida con la información en nuestro archivo bower.
  • Ejecutar bower publish y así compartir nuestro proyecto.
  1. El problema

El problema que encontre es que el proceso de publicación de Bower no valida archivo bower.json, por lo que es probable después de publicar nuestro proyecto y cuando la gente trate de usar nuestra biblioteca y aunque esté disponible obtengan un error similar al siguiente:

bower backform#~0.0.1-alpha EMALFORMED Failed to read /var/folders/bh/8fr0bx9113n0plkjjkt2s5d40000gn/T/enzo/bower/backform-20375-ST4wT6/bower.json

Additional error details:
Unexpected token n

Debido a que el archivo de bower.json tenga errores de formato, imposibilitanto a los usarios utilizarlo.

  1. La solución.

Afortunadamente hay un paquete NodeJS para validar archivos de bower.json antes de publicar.

Primero debemos instalar el paquete con el siguiente comando.

$ npm install bower-json

Ejecute este comando dentro de la carpeta de su biblioteca a compartir o utilizar la opción -g e instalar globalmente en su sitema.

Ahora vamos a utilizar el siguiente script de NodeJS para validar nuestro archivo bower.json, nombrare este script como check_bower.json.

var bowerJson = require('bower-json');

// Can also be used by simply calling bowerJson()
bowerJson.read('./bower.json', function (err, json) {
    if (err) {
        console.error('There was an error reading the file');
        console.error(err.message);
        return;
    }

    console.log('JSON: ', json);
});

Para utilizar este script se debe ejecutar el siguiente comando.

$ node check_bower.js

Como se puede imaginar conseguirá el mismo error en la primera ejecución, por lo que necesita trabajar en su archivo hasta que se obtiene una salida similar a siguiente:

JSON:  { name: 'backform',
  main: [ 'src/backform.js' ],
  version: '0.0.1-alpha',
  homepage: 'https://github.com/AmiliaApp/backform',
  author: { name: 'Martin Drapeau', email: 'martindrapeau@gmail.com' },
  description: 'Backform takes a Backbone model and transforms it into an HTML form',
  keywords: [ 'backbone', 'form', 'underscore' ],
  license: 'MIT',
  ignore: [ '**/.*', 'node_modules', 'bower_components', 'test', 'tests' ],
  dependencies: { backbone: '1.0.0 - 1.1.2', underscore: '1.4.4 - 1.6.0' } }

Puede ver un ejemplo de archivo bower.json en https://github.com/enzolutions/backbone.drupal/blob/master/bower.json.

Espero que hayas encontrado esta entrada del blog útil.

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.