如何将gulp任务添加到角度cli构建中

Bee*_*ice 3 deployment bundling-and-minification gulp angular-cli angular

我正在将Angular 4项目的部署工具切换为angular/cli.该命令默认ng build将生成的包放在一个dist文件夹中.

我需要弄清楚如何将自定义任务添加到此过程.具体来说,我需要将大量.svg文件捆绑并缩小为sprite.defs.svg文件,并将结果放入dist/assets/svg/.使用我以前的部署工具链,我使用gulpgulp-svg-sprite插件.这是我的捆绑步骤:

const svgSprite = require('gulp-svg-sprite');

gulp.src('**/*.svg')
  .pipe(svgSprite({
    mode: {
      defs: {
        dest:'.',
        sprite:"sprite.defs.svg"
      }
    }
  }))
  .pipe(gulp.dest('dist/assets/svg'));
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法将这样的东西整合到angular/cli中ng build

Yak*_*ain 10

比如,你手动运行这个gulp任务

gulp processSVG
Run Code Online (Sandbox Code Playgroud)

在package.json的scripts部分中,定义如下命令:

"prebuild": "gulp processSVG"
Run Code Online (Sandbox Code Playgroud)

npm脚本非常智能,可以在具有相同名称但没有此前缀的命令之前使用"pre"前缀运行命令.现在,运行以下命令:

npm run build
Run Code Online (Sandbox Code Playgroud)

此命令将首先运行prebuild命令,然后运行build命令.