LANGUAGE/!$%!% ERROR NOTE 2019. 6. 24. 05:06

Gulp (걸프)

1. Error - 오류

assert.js:350
    throw err;
    ^

AssertionError [ERR_ASSERTION]: Task function must be specified
    at Gulp.set [as _setTask] (...\node_modules\u
ndertaker\lib\set-task.js:10:3)

Github에서 내 Repository에 취약점(vulnerabilities)이 있다고 메일을 보내서, 귀찮지만 한번 들여다 봤더니, 몇몇 문제가 있는거 같다.

이것 저것 조치하다 보니 Gulp버전을 3에서 4로 올려버렸다...

끅.. 그런데 제발 제발 빌었지만... 구조가 좀 바뀌어서 Build Script 까지 바꿔야했다..

2. Problem - 문제

3에서 4로 버전업이 되면서, gulp.task를 정의 하는 규칙이 조금 바뀌었다.

3. Solved - 해결

  • 간단히 말하면 ==> gulp.task(name, deps, func) 에서 gulp.task(name, gulp.{series|parallel}(deps, func))으로 바꿔주자!

    • BEFORE

      gulp.task('start', ['run','build','watch']);
    • AFTER

      gulp.task('start', gulp.series(['run','build','watch']));
  • Task를 열거할 때 gulp.series인지 gulp.parallel인지만 수정해주면 된다. 직렬-병렬 실행 기능이 생긴것 같다.

  • 경우에 따라서는 아무래도 Task 구조를 바꿔주어야 할 것 같다. 귀찮았지만 이전보다 확실히 Clean and Build가 더 짜임새있게 보강될 수 있는 구조가 된 느낌이다.

  • 제가 고쳤던 이력 Diff를 보실 수 있도록 링크를 걸어두었다. 혹시나 도움이 되시면 좋겠다.

  • 또한, 되도록이면 이곳 설명을 참조하는 것은 필 수 일 것 같다:

4.Reference - 참조

Error - "Task function must be specified": https://github.com/gulpjs/undertaker/issues/54
Gulp 4: The new task execution system - gulp.parallel and gulp.series: https://fettblog.eu/gulp-4-parallel-and-series/