gulpのminifyプロセスの改善 (#5624)
* Use terser instead of uglify * Use gulp-clean-css instead of gulp-cssnano * isProduction分岐を削除
This commit is contained in:
parent
fe9371f06c
commit
d18291cf0c
3 changed files with 112 additions and 750 deletions
21
gulpfile.ts
21
gulpfile.ts
|
@ -3,27 +3,22 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import * as gulp from 'gulp';
|
import * as gulp from 'gulp';
|
||||||
import * as gutil from 'gulp-util';
|
|
||||||
import * as ts from 'gulp-typescript';
|
import * as ts from 'gulp-typescript';
|
||||||
const sourcemaps = require('gulp-sourcemaps');
|
const sourcemaps = require('gulp-sourcemaps');
|
||||||
import tslint from 'gulp-tslint';
|
import tslint from 'gulp-tslint';
|
||||||
const cssnano = require('gulp-cssnano');
|
|
||||||
const stylus = require('gulp-stylus');
|
const stylus = require('gulp-stylus');
|
||||||
import * as uglifyComposer from 'gulp-uglify/composer';
|
|
||||||
import * as rimraf from 'rimraf';
|
import * as rimraf from 'rimraf';
|
||||||
import * as chalk from 'chalk';
|
import * as chalk from 'chalk';
|
||||||
import * as rename from 'gulp-rename';
|
import * as rename from 'gulp-rename';
|
||||||
import * as mocha from 'gulp-mocha';
|
import * as mocha from 'gulp-mocha';
|
||||||
import * as replace from 'gulp-replace';
|
import * as replace from 'gulp-replace';
|
||||||
const uglifyes = require('uglify-es');
|
const cleanCSS = require('gulp-clean-css');
|
||||||
|
const terser = require('gulp-terser');
|
||||||
|
|
||||||
const locales = require('./locales');
|
const locales = require('./locales');
|
||||||
|
|
||||||
const uglify = uglifyComposer(uglifyes, console);
|
|
||||||
|
|
||||||
const env = process.env.NODE_ENV || 'development';
|
const env = process.env.NODE_ENV || 'development';
|
||||||
const isProduction = env === 'production';
|
const isDebug = env !== 'production';
|
||||||
const isDebug = !isProduction;
|
|
||||||
|
|
||||||
if (isDebug) {
|
if (isDebug) {
|
||||||
console.warn(chalk.yellow.bold('WARNING! NODE_ENV is not "production".'));
|
console.warn(chalk.yellow.bold('WARNING! NODE_ENV is not "production".'));
|
||||||
|
@ -101,17 +96,15 @@ gulp.task('build:client:script', () => {
|
||||||
.pipe(replace('VERSION', JSON.stringify(client.version)))
|
.pipe(replace('VERSION', JSON.stringify(client.version)))
|
||||||
.pipe(replace('ENV', JSON.stringify(env)))
|
.pipe(replace('ENV', JSON.stringify(env)))
|
||||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||||
.pipe(isProduction ? uglify({
|
.pipe(terser({
|
||||||
toplevel: true
|
toplevel: true
|
||||||
} as any) : gutil.noop())
|
}))
|
||||||
.pipe(gulp.dest('./built/client/assets/'));
|
.pipe(gulp.dest('./built/client/assets/'));
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('build:client:styles', () =>
|
gulp.task('build:client:styles', () =>
|
||||||
gulp.src('./src/client/app/init.css')
|
gulp.src('./src/client/app/init.css')
|
||||||
.pipe(isProduction
|
.pipe(cleanCSS())
|
||||||
? (cssnano as any)()
|
|
||||||
: gutil.noop())
|
|
||||||
.pipe(gulp.dest('./built/client/assets/'))
|
.pipe(gulp.dest('./built/client/assets/'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -130,7 +123,7 @@ gulp.task('copy:client', () =>
|
||||||
gulp.task('doc', () =>
|
gulp.task('doc', () =>
|
||||||
gulp.src('./src/docs/**/*.styl')
|
gulp.src('./src/docs/**/*.styl')
|
||||||
.pipe(stylus())
|
.pipe(stylus())
|
||||||
.pipe((cssnano as any)())
|
.pipe(cleanCSS())
|
||||||
.pipe(gulp.dest('./built/docs/assets/'))
|
.pipe(gulp.dest('./built/docs/assets/'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
"format": "gulp format"
|
"format": "gulp format"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"gulp-cssnano/cssnano/postcss-svgo/svgo/js-yaml": "^3.13.1",
|
|
||||||
"https-proxy-agent": "^3.0.0",
|
"https-proxy-agent": "^3.0.0",
|
||||||
"lodash": "^4.17.13"
|
"lodash": "^4.17.13"
|
||||||
},
|
},
|
||||||
|
@ -50,8 +49,6 @@
|
||||||
"@types/gulp-mocha": "0.0.32",
|
"@types/gulp-mocha": "0.0.32",
|
||||||
"@types/gulp-rename": "0.0.33",
|
"@types/gulp-rename": "0.0.33",
|
||||||
"@types/gulp-replace": "0.0.31",
|
"@types/gulp-replace": "0.0.31",
|
||||||
"@types/gulp-uglify": "3.0.6",
|
|
||||||
"@types/gulp-util": "3.0.34",
|
|
||||||
"@types/is-url": "1.2.28",
|
"@types/is-url": "1.2.28",
|
||||||
"@types/js-yaml": "3.12.1",
|
"@types/js-yaml": "3.12.1",
|
||||||
"@types/jsdom": "12.2.4",
|
"@types/jsdom": "12.2.4",
|
||||||
|
@ -133,16 +130,15 @@
|
||||||
"file-type": "12.4.0",
|
"file-type": "12.4.0",
|
||||||
"fluent-ffmpeg": "2.1.2",
|
"fluent-ffmpeg": "2.1.2",
|
||||||
"gulp": "4.0.2",
|
"gulp": "4.0.2",
|
||||||
"gulp-cssnano": "2.1.3",
|
"gulp-clean-css": "4.2.0",
|
||||||
"gulp-mocha": "7.0.2",
|
"gulp-mocha": "7.0.2",
|
||||||
"gulp-rename": "1.4.0",
|
"gulp-rename": "1.4.0",
|
||||||
"gulp-replace": "1.0.0",
|
"gulp-replace": "1.0.0",
|
||||||
"gulp-sourcemaps": "2.6.5",
|
"gulp-sourcemaps": "2.6.5",
|
||||||
"gulp-stylus": "2.7.0",
|
"gulp-stylus": "2.7.0",
|
||||||
|
"gulp-terser": "1.2.0",
|
||||||
"gulp-tslint": "8.1.4",
|
"gulp-tslint": "8.1.4",
|
||||||
"gulp-typescript": "5.0.1",
|
"gulp-typescript": "5.0.1",
|
||||||
"gulp-uglify": "3.0.2",
|
|
||||||
"gulp-util": "3.0.8",
|
|
||||||
"hard-source-webpack-plugin": "0.13.1",
|
"hard-source-webpack-plugin": "0.13.1",
|
||||||
"html-minifier": "4.0.0",
|
"html-minifier": "4.0.0",
|
||||||
"http-signature": "1.3.1",
|
"http-signature": "1.3.1",
|
||||||
|
@ -233,7 +229,6 @@
|
||||||
"tslint-sonarts": "1.9.0",
|
"tslint-sonarts": "1.9.0",
|
||||||
"typeorm": "0.2.20",
|
"typeorm": "0.2.20",
|
||||||
"typescript": "3.7.2",
|
"typescript": "3.7.2",
|
||||||
"uglify-es": "3.3.9",
|
|
||||||
"ulid": "2.3.0",
|
"ulid": "2.3.0",
|
||||||
"url-loader": "2.3.0",
|
"url-loader": "2.3.0",
|
||||||
"uuid": "3.3.3",
|
"uuid": "3.3.3",
|
||||||
|
|
Loading…
Reference in a new issue