咕嘟咕嘟-OCTO无视我的选择输出目录
问题描述:
我试图建立一个章鱼部署包用杯和Gulp-Octo角-CLI项目:咕嘟咕嘟-OCTO无视我的选择输出目录
const gulp = require("gulp"),
octopus = require("@octopusdeploy/gulp-octo"),
version = require("./package.json").version;
gulp.task("octopack",
["build-prod"],
() => gulp.src("dist/*")
.pipe(octopus.pack(
"zip", // octopackjs does not support nupkg format yet
{
id: "myprojectid",
version: `${version}.${commandLineOptions.buildnumber}`
}))
.pipe(gulp.dest('./octopus'))
);
这与正确的内容,并创建一个包版本号,但是它总是进入当前目录(沿着gulpfile.js
),而不是我在gulp.dest()
中指定的目录。
我已经尝试了所有的以下变化在调用gulp.dest
,具有相同的结果:
./octopus
./octopus/
octopus/
octopus
path.join(__dirname, 'octopus')
我误解gulp.dest()
是如何工作的,或者是octopus.pack()
做些奇怪的事情?
(注:如果我干脆离开了gulp.dest()
则没有创建压缩文件)
答
这是在gulp-octo
的错误。在this line他们设置生成的存档的路径。不幸的是,他们只是使用归档文件的文件名而不是完整路径(即what they're supposed to do),所以文件总是相对于当前工作目录写入。
当我有机会时,我可能会向他们发送拉请求,因为这是一个简单的修复方法。
在您可以使用以下解决方法其间:
var path = require('path');
gulp.task("default",
() => gulp.src("dist/*")
.pipe(octopus.pack(
"zip", // octopackjs does not support nupkg format yet
{
id: "myprojectid",
version: `${version}.${commandLineOptions.buildnumber}`
}))
.on('data', (f) => { f.path = path.join(f.base, f.path) })
.pipe(gulp.dest('./octopus'))
);