我正在尝试使用Gulp和Gulp-Octo为angular-cli项目构建一个Octopus Deploy包:
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()
,则不会创建任何zip文件。)
答案 0 :(得分:1)
这是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'))
);
中的错误。在this line中,他们设置了生成的存档的路径。不幸的是,他们只使用存档的文件名而不是完整路径(what they're supposed to do),因此文件总是相对于当前工作目录编写。
当我有机会时,我可能会向他们发送拉取请求,因为这是一个简单的解决方法。
与此同时,您可以使用以下解决方法:
html += "<a href='../InspectionView.aspx?inspectionID='" + inspectionID + " class='list-group-item' id=''>Inspection ID: " + inspectionID + " - Due Date: " + inspDueDate + " - Inspector(s): Bob Williams <span style='min-width:75px' class='label label-primary pull-right'>" + status + "</span></a>";