diferencias bootstrap javascript angularjs gulp build-process

javascript - angularjs vs bootstrap diferencias



¿Cómo aumentar el número de versión a través de la tarea Gulp? (2)

Instalar gulp-bump

npm install gulp-bump --save-dev

Instalar yargs

npm install yargs --save-dev

Requiere gulp-bump

var bump = require(''gulp-bump'');

Requiere yargs

var args = require(''yargs'').argv;

Tu tarea de respuesta

gulp.task(''bump'', function () { /// <summary> /// It bumps revisions /// Usage: /// 1. gulp bump : bumps the package.json and bower.json to the next minor revision. /// i.e. from 0.1.1 to 0.1.2 /// 2. gulp bump --version 1.1.1 : bumps/sets the package.json and bower.json to the /// specified revision. /// 3. gulp bump --type major : bumps 1.0.0 /// gulp bump --type minor : bumps 0.1.0 /// gulp bump --type patch : bumps 0.0.2 /// gulp bump --type prerelease : bumps 0.0.1-2 /// </summary> var type = args.type; var version = args.version; var options = {}; if (version) { options.version = version; msg += '' to '' + version; } else { options.type = type; msg += '' for a '' + type; } return gulp .src([''Path to your package.json'', ''path to your bower.json'']) .pipe(bump(options)) .pipe(gulp.dest(''path to your root directory'')); });

Nota de VSO: creo que mucha gente que viene a este hilo buscará exactamente la respuesta anterior. El siguiente código es para editar un número de versión almacenado en algún lado ADEMÁS de los archivos del paquete npm / bower, como en constantes angulares:

gulp.task(''increment-version'', function(){ //docString is the file from which you will get your constant string var docString = fs.readFileSync(''./someFolder/constants.js'', ''utf8''); //The code below gets your semantic v# from docString var versionNumPattern=/''someTextPreceedingVNumber'', ''(.*)''/; //This is just a regEx with a capture group for version number var vNumRexEx = new RegExp(versionNumPattern); var oldVersionNumber = (vNumRexEx.exec(docString))[1]; //This gets the captured group //...Split the version number string into elements so you can bump the one you want var versionParts = oldVersionNumber.split(''.''); var vArray = { vMajor : versionParts[0], vMinor : versionParts[1], vPatch : versionParts[2] }; vArray.vPatch = parseFloat(vArray.vPatch) + 1; var periodString = "."; var newVersionNumber = vArray.vMajor + periodString + vArray.vMinor+ periodString + vArray.vPatch; gulp.src([''./someFolder/constants.js'']) .pipe(replace(/''someTextPreceedingVNumber'', ''(.*)''/g, newVersionNumber)) .pipe(gulp.dest(''./someFolder/'')); });

Omití un poco de tonterías que escribe mi constante en una secuencia bonita, pero esa es la esencia y funciona.

Me gustaría reemplazar una cadena que indica el número de versión en un archivo javascript ( myConstantsFile.js ), con otra cadena. Entonces, por ejemplo, mi número de versión se ve así: "01.11.15", escrito así en myConstantsFile.js con otras constantes:

.constant(''productVersion'', ''1.11.15'');

En este momento, mi tarea se ve así:

gulp.task(''increment-version'', function(){ gulp.src([''./somedir/myConstantsFile.js'']) .pipe(replace(/''productVersion'', ''(.*)''/g, ''99.99.99'')) .pipe(gulp.dest(''./somedir/'')); });

Como puede ver, estoy usando un código de incremento constante, no en ejecución, que se vería así:

var numberString = ''0.0.1''; var versionParts = numberString.split(''.''); var vArray = { vMajor : versionParts[0], vMinor : versionParts[1], vPatch : versionParts[2] } vArray.vPatch = parseFloat(vArray.vPatch) + 1; var periodString = "."; var newVersionNumberString = vArray.vMajor + periodString + vArray.vMinor+ periodString + vArray.vPatch;

Necesito:

  1. Una forma de seleccionar el número de versión actual a través de regex a través del archivo.
  2. Para saber dónde puedo poner la lógica en el último bloque de código para incrementar el número y construir la nueva cadena.

Empecé a mirar en trago desde hace 5 horas, ya que tenía una tarea para arreglar el requisito. Entonces, siendo un novato definitivo a trago, salí con el siguiente código, que no tiene la expresión de expresiones regulares . Gracias a @VSO y @Wilmer Saint para un comienzo rápido. Puede ser un pequeño cambio, pero esto me ayudó.

gulp.task(''version'', function(){ var fs = require(''fs''); //docString is the file from which you will get your constant string var docString = fs.readFileSync(''app/scripts/version/version.js'', ''utf8''); //type of docString i an object here. var versionParts = docString.split(''.''); var vArray = { vMajor : versionParts[0], vMinor : versionParts[1], vPatch : versionParts[2] }; vArray.vPatch = parseFloat(vArray.vPatch) + 1; var periodString = "."; var newVersionNumber = vArray.vMajor + periodString + vArray.vMinor+ periodString + vArray.vPatch; require(''fs'').writeFileSync(''app/scripts/version/version.js'', newVersionNumber); return gulp.src([''app/scripts/version/version.js'']) .pipe(gulp.dest(''app/scripts/version/new_version''));//creates version.js file in the directory });

o el código de retorno podría ser el siguiente para anular el número en el archivo version.js

return gulp.src([''app/scripts/version/version.js''], {base: ''./app/scripts/version/version.js''}) .pipe((gulp.dest(''./app/scripts/version/version.js'')))

Mi version.js solo tiene código debajo

versionBuild = ''1.0.8''

Utilicé el siguiente en mi función principal (cargas al cargar la aplicación)

var versionBuild=parseInt(1000*Math.random()); var random = function(digs){ var rndn; if(window.location.hostname === "localhost" || window.location.hostname === "127.0.0.1") { rndn = Math.random(); if(digs != undefined && !isNaN(digs)){ rndn = parseInt(Math.pow(10, digs)*rndn) } return rndn; } else { return versionBuild; } }