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:
- Una forma de seleccionar el número de versión actual a través de regex a través del archivo.
- 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;
}
}