54764
gulpfile.jsに関する質問です。  
gulp、js初心者です。

# エラー

```

    gulp.parallel is not a function
    
```

# 試みたこと

以下のサイトに従ってパッケージのgulpをアップデートするが、package.jsonではgulp 4.01  
コマンドプロンプトでgulp -vをするとなぜか

```

    CLI version 2.1.0
    Local version 3.9.1
    
```

となってしまう

[古くなったgulpのプラグインをチェック&更新する方法 | NO:1572 | Webデザインリリック](https://kenyo--
c.com/css/1572/)

# 質問

バージョンアップしてもエラーが消せませんでした。  
どうすれば良いのでしょうか。

# gulpfile.js

```

    const gulp = require('gulp');
    
    //pug
    const pug = require('gulp-pug');
    const fs = require('fs');
    const data = require('gulp-data');
    const path = require('path');
    const plumber = require('gulp-plumber');
    const notify = require('gulp-notify');
    const browserSync = require('browser-sync');
    
    //css
    const sass = require('gulp-sass');
    const sassGlob = require('gulp-sass-glob');
    const postcss = require('gulp-postcss');
    const flexBugsFixes = require('postcss-flexbugs-fixes');
    const autoprefixer = require('gulp-autoprefixer'); //Sassにベンダープレフィックスをつける
    const rename = require('gulp-rename'); //ファイルをリネーム
    
    /**
     * 開発用のディレクトリを指定します。
     */
    const src = {
      // 出力対象は`_`で始まっていない`.pug`ファイル。
      'html': ['src/**/*.pug', '!' + 'src/**/_*.pug'],
      // JSONファイルのディレクトリを変数化。
      'json': 'src/_data/',
      'css': 'src/**/*.css',
      'sass_style': ['src/**/*.scss', '!' + 'src/**/_*.scss'],
      //'styleguideWatch': 'src/**/*.scss',
      'js': 'src/**/*.js'
    };
    
    /**
     * 出力するディレクトリを指定します。
     */
    const dest = {
      'root': 'dest/',
      'html': 'dest/'
    };
    
    /**
     * PugのコンパイルやCSSとjsの出力、browser-syncのリアルタイムプレビューを実行します。
     */
    function watchFiles(done) {
      gulp.watch(src.html).on('change', gulp.series(html, browserReload));
      gulp.watch(src.scss).on('change', gulp.series(sass_style, browserReload));
      gulp.watch(src.css).on('change', gulp.series(css, browserReload));
      gulp.watch(src.js).on('change', gulp.series(js, browserReload));
    }
    
    gulp.task('default', gulp.series(gulp.parallel(html, sass_style, css, js), gulp.series(browsersync, watchFiles)));
    
```

# package.json

```

    {
      "name": "gulp-pug-test",
      "version": "1.0.0",
      "description": "GulpでPugを実行するためのテスト環境です。",
      "main": "index.js",
      "scripts": {
        "start": "gulp"
      },
      "keywords": [
        "gulp",
        "pug"
      ],
      "author": "aaa",
      "license": "MIT",
      "devDependencies": {
        "browser-sync": "^2.26.4",
        "gulp": "^4.0.1",
        "gulp-autoprefixer": "^6.1.0",
        "gulp-clean-css": "^4.0.0",
        "gulp-data": "^1.3.1",
        "gulp-notify": "^3.2.0",
        "gulp-plumber": "^1.2.1",
        "gulp-postcss": "^8.0.0",
        "gulp-pug": "^4.0.1",
        "gulp-rename": "^1.4.0",
        "gulp-sass": "^4.0.2",
        "gulp-sass-glob": "^1.0.9",
        "postcss-flexbugs-fixes": "^4.1.0"
      }
    }
    
```
CC BY-SA 4.0
2019-04-26T05:02:20.973
54496
2019-05-08T01:49:12.460
2019-04-26T05:05:15.863
29826
34049
question
javascript gulp
gulp.parallel is not a function
質問でしたエラーはnode_modulesをインストールし直して消えました。  
npx gulpを実行したところ以下のようなエラーが出ました。

```

    assert.js:350 throw err; ^ AssertionError [ERR_ASSERTION]: Task function must be specified 
    
```

ググって調べたところグローバルのバージョンを優先的に見てしまっているという記事を見ました。  
なので、  
package.json

```

    "scripts": {"gulp": "gulp"}, 
    
```

を書き足したら

```

    assert.js:350 throw err; ^ AssertionError [ERR_ASSERTION]: Task function must be specified 
    
```

というエラーは消えました。

参考:  
[より便利になった gulp 4.0 への移行方法と変更点をまとめました -
株式会社クイックのWebサービス開発blog](https://aimstogeek.hatenablog.com/entry/2018/11/30/192238)
CC BY-SA 4.0
2019-05-06T04:15:11.110
54764
2019-05-08T01:49:12.460
2019-05-08T01:49:12.460
34049
34049
54496
answer