1

我有一个 gulp 任务来构建为 dev 运行的所有内容(工作正常)。在发布 gulp 任务时,我们会执行相同的操作,但还会添加一个捆绑任务,该任务也会缩小 css。

我只想缩小 css 内联,这意味着文件的 src 和 dest 相同;但是,我在运行时收到以下错误。

错误:EACCES:权限被拒绝,打开

我认为我没有遇到任何竞争条件,因为我的构建任务在缩小开始之前显示为已完成

[15:11:48] Finished 'build_client_lib' after 3.31 s
[15:11:48] Starting 'build'...
[15:11:48] Finished 'build' after 1.67 μs
[15:11:48] Starting 'minify-css'...
[15:11:48] 'minify-css' errored after 344 ms

有问题的任务是:

gulp.task('release', callback => {
  gulpSequence('clean_packages', 'build', 'client_lib_bundle')(callback)
});

gulp.task('client_lib_bundle', ['minify-css'], () => {

});

gulp.task('minify-css', () => {
  return gulp.src('build/client_lib/**/*.css')
    .pipe(cleanCSS())
    .pipe(gulp.dest('build/client_lib'));
});

如果我指定了一个备用目标路径,它工作正常,但我不想这样做。如何解决此访问问题?

4

1 回答 1

1

原来我使用的包 gulpSequence 导致这个,以及许多其他项目,以一种尴尬的异步方式运行。更改为 npm 包 run-sequence 清除了所有这些并确保一切都以正确的顺序运行。

于 2017-01-21T02:01:35.267 回答