Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用gulp修改json文件_Json_Node.js_Gulp - Fatal编程技术网

用gulp修改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

我有一个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.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中执行,这将标记您的版本。