【问题标题】:Gulp is throwing an error. Did you forget to signal async compilation.?Gulp 抛出一个错误。您是否忘记发出异步编译信号。?
【发布时间】:2020-05-08 06:13:39
【问题描述】:

gulp locale-sass :

return function(done) {
  ......
  if (fileSizeError) {
    console.log("Compiled CSS file size exceeds threshold value (MAX 1953 kb allowed)");
  } else {
    done();
  }
};

如果触发了正在抛出的 fileSizeError 块

Did you forget to signal async compilation.?

如果 else 块正在执行,则任务完成且没有任何错误。

我必须以某种方式隐藏错误消息。由于某种原因,我正在使用预提交挂钩,因为我正在使用这种情况。只是我需要隐藏一条错误消息。

"scripts": {
  ........
  "deploy": "gulp deploy",
  "reset": "gulp reset",
  "locale-sass": "gulp locale-sass"
  },
  "husky": {
    "hooks": {
      "pre-commit": "gulp reset && gulp locale-sass"
    }
  },

【问题讨论】:

  • 我会在 if 子句的末尾或整个函数的末尾添加一个 done() 调用。
  • @Mark 如果我执行 done() 则 gulp 操作成功。如果 fileSizeError 为真,我的条件是 gulp 必须失败。一种选择是在 gulp 结束时使用 --silent 来隐藏错误。例如 gulp reset && gulp locale-sass --silent

标签: javascript drupal gulp gulp-watch gulp-sass


【解决方案1】:

添加 done() 并将错误作为唯一参数传递给它:

return function(done) {
  ......
  if (fileSizeError) {
    console.log("Compiled CSS file size exceeds threshold value (MAX 1953 kb allowed)");
    done(fileSizeError);
  } else {
    done();
  }
};

请参阅official documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多