用gulp修改json文件
我有一个package.json文件:用gulp修改json文件,json,node.js,gulp,Json,Node.js,Gulp,我有一个package.json文件: { "name": "Name", "version": "0.0.0", "author": "Company", "description": "A sample project.", "private": true } 我希望能够使用gulp更新版本字段。我将使用环境变量将其设置为Jenkins的版本号: var version = process.env.MAJOR +'.' + process.env
{
"name": "Name",
"version": "0.0.0",
"author": "Company",
"description": "A sample project.",
"private": true
}
我希望能够使用gulp更新版本字段。我将使用环境变量将其设置为Jenkins的版本号:
var version = process.env.MAJOR +'.' + process.env.MINOR + '.' + process.env.BUILD_NUMBER;
我想要一个将json文件的version字段更新为version值的任务:
gulp.task('update-package-build-no', function () {
pkg.version = version;
});
有什么想法吗?这甚至可以实现吗?我将使用angular读取package.json文件,在about页面上显示应用程序的版本号。看一看
您可以使用以下语法:
gulp.src("package.json")
.pipe(bump(process.env.MAJOR + '.' + process.env.MINOR + '.' + process.env.BUILD_NUMBER))
.pipe(gulp.dest('./'))
顺便说一句,它是major.minor.patch tags+buildNumber.:-)
构建元数据可以通过附加加号和一系列
紧跟在修补程序之后的点分隔标识符或
预发布版本。标识符必须仅包含ASCII码
字母数字和连字符[0-9A-Za-z-]。标识符不能为空。
确定版本优先级时应忽略生成元数据。
因此,只有构建元数据不同的两个版本具有
同样的优先权。示例:1.0.0-alpha+001,1.0.0+20130313144700,
1.0.0-beta+exp.sha.5114f85
这会取代json的全部内容吗?我只想更新版本字段?它只会修改版本字段,但是当它被导出时,
package.json
会被gulp覆盖,因此,如果您不使用像async
这样的库,尝试同时使用两个gulp任务编辑package.json
,您可能会发现问题。您能解释一下版本字段只会更新的方式/原因吗?我没有看到你只针对版本字段?或者这就是bump包的目标吗?gulp.src
将获取package.json的内容。这通过管道传输到通气
功能。bump
函数可能会反序列化package.JSON中的JSON,然后修改版本字段。然后将结果通过管道传输到gulp.dest
,后者将文件写入/package.json
。我没有写bump库,但这就是我得到的印象。您可以看到,它实际上只针对opts.version
。值得一提的是,您可以通过执行npm version major.minor.version+buildNumber
,跳过gulp altogther,但如果在repo中执行,这将标记您的版本。