【问题标题】:How to import gulp tasks?如何导入 gulp 任务?
【发布时间】:2017-07-18 12:52:30
【问题描述】:

我引用这篇文章: https://css-tricks.com/combine-webpack-gulp-4/

还有这个存储库: https://github.com/PascalAOMS/gulp4-webpack

我正在尝试将 gulp 任务从一个文件导入另一个文件。我尝试将任务编写为函数,然后正常导出,但开始收到错误“您是否忘记发出异步完成信号?”。我还想也许我可以像往常一样编写任务,但是将它们包装在一个函数中并导出它,但是同样的错误。

为了更清楚,我试图弄清楚如何在此文件https://github.com/PascalAOMS/gulp4-webpack/blob/master/tasks/index.js 中将任务添加到 build gulp.series 中

有人有什么想法吗?

这里是 index.js

 import gulp from 'gulp';
 import { scripts } from './webpack';
 import { server }  from './server';
 import { assets } from './tasks/assets';

 export const dev   = gulp.series( server )
 export const build = gulp.series( scripts, assets )
 export default dev

这是资产任务的示例:

import gulp from 'gulp';
const assets = () =>  {
   return gulp.src(fonts.src)
      .pipe(gulp.dest(fonts.dist));
}
export { assets };

【问题讨论】:

  • 显示您拥有的代码。
  • 抱歉,添加了更多代码。我引用的完整设置在我之前链接的存储库中。

标签: javascript gulp


【解决方案1】:

无论出于何种原因,这段代码突然起作用了。将其留在这里以防它可能对其他人有所帮助:

index.js

import gulp from 'gulp';
import { scripts } from './webpack';
import { server }  from './server';
import { assets } from './tasks/assets';

export const dev   = gulp.series( server )
export const build = gulp.series( scripts, assets )
export default dev

task/assets.js

import gulp from 'gulp';
const assets = () =>  {
   return gulp.src(fonts.src)
      .pipe(gulp.dest(fonts.dist));
}
export { assets };

【讨论】:

    【解决方案2】:

    使用CommonJs,因为这将使用尚不支持ES6 modules的节点运行

    所以替换 f.e.

    import { scripts } from './webpack';
    

    const scripts = require(./webpack).scripts;
    

    export {assets};
    

    module.exports = {
     assets
    }
    

    另一种解决方案是首先通过 babel 之类的转译器运行您的配置。

    【讨论】:

    • 感谢您的回复!尽管“以下任务未完成:构建、资产您是否忘记发出异步完成信号?”但同样的错误
    猜你喜欢
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多