keyboard-trainer

Форк
0
/
gulpfile.js 
91 строка · 2.6 Кб
1
const gulp = require("gulp");
2
const webpack = require("webpack-stream");
3
const sourcemaps = require("gulp-sourcemaps");
4
const rename = require('gulp-rename');
5
const nodemon = require("gulp-nodemon");
6
const env = require("gulp-env");
7
const sass = require('gulp-sass')(require('sass'));
8

9
const dist = "./dist/";
10
const src = "./src/";
11

12
gulp.task("copy-handlebar-views", () => {
13
  return gulp.src(src + "/views/**/*.hbs")
14
    .pipe(gulp.dest(dist + "/views"))
15
});
16

17
gulp.task("copy-fonts", () => {
18
  return gulp.src(src + "/fonts/**/*.*")
19
    .pipe(gulp.dest(dist + "/public/fonts"))
20
});
21

22
gulp.task("copy-assets", () => {
23
  return gulp.src(src + "/assets/**/*.*")
24
    .pipe(gulp.dest(dist + "/public/assets"))
25
})
26

27
gulp.task("copy-server", () => {
28
  return gulp.src(src + "/server/**/*.js")
29
    .pipe(gulp.dest(dist));
30
})
31
gulp.task("copy-env-file", () => {
32
  return gulp.src(src + "/server/.env.json")
33
    .pipe(gulp.dest(dist));
34
})
35

36
gulp.task("serve", () => {
37
  env({
38
    file: dist + "/.env.json"
39
  })
40
  nodemon({
41
    script: dist + "/index.js",
42
    ext: 'js hbs css'
43
  })
44
})
45

46
gulp.task("build-ts", () => {
47
  return gulp.src(src + "/scripts/main.ts")
48
      .pipe(webpack({
49
        mode: 'production',
50
        watch: false,
51
        devtool: "source-map",
52
        module: {
53
          rules: [{
54
            test: /\.tsx?$/,
55
            exclude: /(node_modules|bower_components)/,
56
            use: {
57
              loader: 'ts-loader',
58
            }
59
          }]
60
        },
61
        resolve: {
62
          extensions: ['.tsx', '.ts', '.js'],
63
        },
64
        output: {
65
          filename: 'bundle.js'
66
        },
67
      }))
68
      .pipe(gulp.dest(dist + "/public/scripts"))
69
});
70

71
gulp.task("build-styles", () => {
72
  return gulp.src(src + "/styles/main.@(scss|sass)")
73
    .pipe(sourcemaps.init())
74
    .pipe(sass().on("error", sass.logError))
75
    .pipe(sourcemaps.write())
76
    .pipe(rename("style.css"))
77
    .pipe(gulp.dest(dist + "/public/styles"))
78
})
79

80
gulp.task("watch", () => {
81
  gulp.watch(src + "server/**/*.js", gulp.series("copy-server"));
82
  gulp.watch(src + "views/**/*.hbs", gulp.parallel("copy-handlebar-views"));
83
  gulp.watch(src + "scripts/**/*.ts", gulp.parallel("build-ts"));
84
  gulp.watch(src + "styles/**/*.@(scss|sass)", gulp.parallel("build-styles"));
85
  gulp.watch(src + "assets/**/*.*", gulp.parallel("copy-assets"));
86
  gulp.watch(src + "fonts/**/*.*", gulp.parallel("copy-fonts"));
87
})
88

89
gulp.task("build", gulp.parallel(gulp.series("copy-env-file", "copy-server", "serve"), "build-ts", "copy-handlebar-views", "build-styles", "copy-assets"/*"copy-fonts"*/));
90

91
gulp.task("default", gulp.parallel("watch", "build"));

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.