首页 > 解决方案 > 如何摆脱 Gulp 的“从未定义的任务:默认”?

问题描述

我正在使用其他人制作的现有 Gulp 脚本,有趣的是,类似的用于 JS 的脚本可以正常工作,但这个用于样式的脚本却不行。编码:

'use strict';
const
 path = require('path'),
 pathToLibs = path.resolve('../../../../libs');
const
 {CssCompressor} = require('css-compressor.js'),
 compressor = new CssCompressor(false),
 resolveLocalSrc = function (files) {
   return files.map(item => path.resolve(__dirname, item));
 },
 resolveLibsSrc = function (files) {
   return files.map(item => path.resolve(pathToLibs, item));
 };

let sources = {
 "cache_main.css": [].concat(
   resolveLocalSrc([
     "scss/design-core.scss"
   ]),
   resolveLibsSrc([
     "vendor/jquery/dropzone-4.3.0/dropzone.css"
   ]),
   resolveLocalSrc([
     "../scripts/jquery/whatever.css",
     "scss/whatever.scss",
   ])
 ),
 "cache_light.css": resolveLocalSrc(["scss/design-core.scss"])
};
compressor.makeCache(sources, './', ["scss/*.scss"]);

运行时 gulp,它说: Task never defined: default

摘自 css-compressor.js:

  makeCache(sources, dest = './', additionalDirsToWatch=[]) {
    Object.entries(sources).forEach(([cacheFileName, files]) => {
      gulp.task('compress ' + cacheFileName, () => {
        this.compress(files, cacheFileName, dest);
      });
    });

你能帮我吗?谢谢!

标签: gulp

解决方案


最后需要声明一个默认任务。

使用 Gulp 3.x:

gulp.task('default', ['styles', 'scripts', 'images']);

使用 Gulp 4.x:

gulp.task('default', gulp.parallel('styles', 'scripts', 'images'));

用您的任务替换样式、脚本和图像。


推荐阅读