首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Azure DevOps管道中缺失的CSS文件夹

从Azure DevOps管道中缺失的CSS文件夹
EN

Stack Overflow用户
提问于 2019-01-02 15:31:11
回答 2查看 1.4K关注 0票数 4

一点背景..。

我有一个托管在Azure上的小型dotnet核心应用程序,它正在使用Azure DevOps管道构建和部署。在我们开始使用DevOps管道之前,CI被直接连接到Azure,后者编译得很好,但需要花费实际的生命周期来部署,因此决定迁移。

但是,构建管道不再编译或输出sass/css文件夹

其他一切都正常--我签入后,构建管道将获取我的提交,并有以下步骤:

  1. 恢复.NET核
  2. 构建.NET核
  3. 发布.NET核心
  4. 发布构建人工制品

步骤3(发布)的一部分使用了Gulp任务:

代码语言:javascript
复制
gulp.task('prod', function (callback) {
    runSequence('clean','set-prod',
    ['icon-sprite', 'logo-sprite', 'images', 'sass', 'modernizr', 'mainjs', 'adminjs'], 
           callback);
});

并在本地(以前)生成五个文件夹:

  • 图标
  • img
  • js
  • 徽标
  • css (现在在行动中神秘失踪)

我试过的变体

我尝试删除本地css文件夹,并以管道的方式运行CLI dotnet publish,这在本地似乎运行得很好。

我还删除了sass任务,以防在某个地方引起问题,所以现在看起来如下:

代码语言:javascript
复制
return gulp.src('src/sass/style.scss')
    .pipe(sass({outputStyle: 'compressed'}))
    .pipe(gulp.dest('wwwroot/dist/css));

我可以在管道上的控制台日志中看到所有的输出,它成功地执行sass任务:

代码语言:javascript
复制
2019-01-02T14:43:51.3558593Z   [14:43:51] Starting 'sass'...
2019-01-02T14:43:51.9284145Z   [14:43:51] Finished 'sass' after 524 ms

在构建脚本中没有其他错误或警告,一切都完成并触发发布管道(该管道将工件复制到Azure站点)。

炒作

我希望有个错误.但什么都没有-所有的绿色蜱都是完全快乐的..。所以我对可能发生或不可能发生的事情感到有点困惑!我只能认为管道环境中一定有一些依赖或遗漏了什么?也许我错过了管道的一步?

任何帮助,推动或想法将是非常感谢的!(谢谢你通过我的短文坚持下来,以及你能提供的任何帮助:)

EN

回答 2

Stack Overflow用户

发布于 2019-01-02 18:04:19

在这种情况下,我以前做过的事情是更改发布构建工件任务来上传构建文件夹中的所有内容。我猜现在任务中的“发布路径”值设置为$(build.artifactStagingDirectory)。将其改为$(build.SourcesDirectory)。在再次运行构建之后,您将看到整个构建目录已经上载。这包括您的源代码和您在本地环境中拥有的任何其他文件夹。在那里,您可以知道CSS文件夹是否真的丢失了,或者它是否在其他文件夹位置结束。

如果文件夹最后位于一个奇怪的位置,您可以添加一个文件复制任务,以将CSS文件夹移动到$(build.artifactStagingDirectory)中的正确文件夹,或者对CSS任务进行更改。任何对你的情节更好的。

一旦找到位置,就可以修复发布构建工件任务。

票数 0
EN

Stack Overflow用户

发布于 2019-12-27 20:48:33

我也有同样的问题。我能让所有的东西都在本地工作,没有问题。gulp将生成css文件夹。dotnet publish -c release也会这么做。但是,当在管道中运行时,没有css文件夹。

我发现最奇怪的是,有一个同级文件夹(脚本),其使用方式与使用css gulp任务的方式相同,但该文件夹使它变得很好。下面是我的css任务:

代码语言:javascript
复制
gulp.task('min', function() {
    return gulp.src('wwwroot/css/**/*.css')
        .pipe(cssnano({zindex:false}))
        .pipe(gulp.dest('wwwroot/dist/css/'));
});

但是,这个任务在本地和在管道中都能工作:

代码语言:javascript
复制
gulp.task('build-js', function() {
  return gulp.src('wwwroot/scripts/**/*.js')
    .pipe(concat('site.bundle.js'))
    .pipe(uglify())
    .pipe(gulp.dest('wwwroot/dist/scripts/'));
});

最后,我放弃了,因为这无论如何都是遗留代码,因此我选择了一个解决办法:

使用以下配置,在gulp任务之后添加复制文件任务:

或者,如果你喜欢YAML:

代码语言:javascript
复制
steps:
- task: CopyFiles@2
  displayName: 'Copy Files to: wwwroot/dist/css'
  inputs:
    SourceFolder: wwwroot/css
    Contents: '*.css'
    TargetFolder: wwwroot/dist/css
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54009016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档