VSO*_*VSO 18 javascript build-process angularjs gulp
我想myConstantsFile.js用另一个字符串替换javascript文件()中指示版本号的字符串.因此,例如,我的版本号看起来像这样:"01.11.15",myConstantsFile.js 与其他常量一样写成:
.constant('productVersion', '1.11.15');
Run Code Online (Sandbox Code Playgroud)
现在,我的任务看起来像这样:
gulp.task('increment-version', function(){
gulp.src(['./somedir/myConstantsFile.js'])
.pipe(replace(/'productVersion', '(.*)'/g, '99.99.99'))
.pipe(gulp.dest('./somedir/'));
});
Run Code Online (Sandbox Code Playgroud)
如您所见,我使用的是常量,而不是运行的增量代码,如下所示:
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;
Run Code Online (Sandbox Code Playgroud)
我需要:
Wil*_* SH 25
npm install gulp-bump --save-dev
Run Code Online (Sandbox Code Playgroud)
安装yargs
npm install yargs --save-dev
Run Code Online (Sandbox Code Playgroud)
需要gulp-bump
var bump = require('gulp-bump');
Run Code Online (Sandbox Code Playgroud)
要求yargs
var args = require('yargs').argv;
Run Code Online (Sandbox Code Playgroud)
你的碰撞任务
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'));
});
Run Code Online (Sandbox Code Playgroud)
VSO注意:我相信很多人来到这个主题将会完全找到上面的答案.下面的代码是编辑存储在某处的版本号BESIDES npm/bower包文件,例如角度常量:
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/'));
});
Run Code Online (Sandbox Code Playgroud)
我省略了一些mumbo-jumbo,它将我的常量写在一个漂亮的字符串中,但这就是要点而且它有效.
| 归档时间: |
|
| 查看次数: |
9642 次 |
| 最近记录: |