From f6154dc0af1a0d65819e87240f4385f9573095cb Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 30 Jan 2020 04:37:25 +0900 Subject: v12 (#5712) Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com> Co-authored-by: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com> --- gulpfile.ts | 90 ++++++++++++------------------------------------------------- 1 file changed, 17 insertions(+), 73 deletions(-) (limited to 'gulpfile.ts') diff --git a/gulpfile.ts b/gulpfile.ts index 2ba30aace1..274f05a5a8 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -2,38 +2,25 @@ * Gulp tasks */ +import * as fs from 'fs'; import * as gulp from 'gulp'; import * as ts from 'gulp-typescript'; -const sourcemaps = require('gulp-sourcemaps'); -import tslint from 'gulp-tslint'; -const stylus = require('gulp-stylus'); import * as rimraf from 'rimraf'; -import * as chalk from 'chalk'; import * as rename from 'gulp-rename'; -import * as mocha from 'gulp-mocha'; -import * as replace from 'gulp-replace'; const cleanCSS = require('gulp-clean-css'); -const terser = require('gulp-terser'); +const sass = require('gulp-dart-sass'); +const fiber = require('fibers'); const locales = require('./locales'); - -const env = process.env.NODE_ENV || 'development'; -const isDebug = env !== 'production'; - -if (isDebug) { - console.warn(chalk.yellow.bold('WARNING! NODE_ENV is not "production".')); - console.warn(chalk.yellow.bold(' built script will not be compressed.')); -} +const meta = require('./package.json'); gulp.task('build:ts', () => { const tsProject = ts.createProject('./tsconfig.json'); return tsProject .src() - .pipe(sourcemaps.init()) .pipe(tsProject()) .on('error', () => {}) - .pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: '../built' })) .pipe(gulp.dest('./built/')); }); @@ -41,47 +28,25 @@ gulp.task('build:copy:views', () => gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views')) ); -gulp.task('build:copy:fonts', () => - gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/')) -); +gulp.task('build:copy:locales', cb => { + fs.mkdirSync('./built/client/assets/locales', { recursive: true }); -gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:fonts', () => + for (const [lang, locale] of Object.entries(locales)) { + fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify(locale), 'utf-8'); + } + + cb(); +}); + +gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', () => gulp.src([ - './src/const.json', './src/emojilist.json', './src/server/web/views/**/*', './src/**/assets/**/*', - '!./src/client/app/**/assets/**/*' + '!./src/client/assets/**/*' ]).pipe(gulp.dest('./built/')) )); -gulp.task('lint', () => - gulp.src('./src/**/*.ts') - .pipe(tslint({ - formatter: 'verbose' - })) - .pipe(tslint.report()) -); - -gulp.task('format', () => - gulp.src('./src/**/*.ts') - .pipe(tslint({ - formatter: 'verbose', - fix: true - })) - .pipe(tslint.report()) -); - -gulp.task('mocha', () => - gulp.src('./test/**/*.ts') - .pipe(mocha({ - exit: true, - require: 'ts-node/register' - } as any)) -); - -gulp.task('test', gulp.task('mocha')); - gulp.task('clean', cb => rimraf('./built', cb) ); @@ -90,20 +55,9 @@ gulp.task('cleanall', gulp.parallel('clean', cb => rimraf('./node_modules', cb) )); -gulp.task('build:client:script', () => { - const client = require('./built/meta.json'); - return gulp.src(['./src/client/app/boot.js', './src/client/app/safe.js']) - .pipe(replace('VERSION', JSON.stringify(client.version))) - .pipe(replace('ENV', JSON.stringify(env))) - .pipe(replace('LANGS', JSON.stringify(Object.keys(locales)))) - .pipe(terser({ - toplevel: true - })) - .pipe(gulp.dest('./built/client/assets/')); -}); - gulp.task('build:client:styles', () => - gulp.src('./src/client/app/init.css') + gulp.src('./src/client/style.scss') + .pipe(sass({ fiber })) .pipe(cleanCSS()) .pipe(gulp.dest('./built/client/assets/')) ); @@ -112,7 +66,6 @@ gulp.task('copy:client', () => gulp.src([ './assets/**/*', './src/client/assets/**/*', - './src/client/app/*/assets/**/*' ]) .pipe(rename(path => { path.dirname = path.dirname!.replace('assets', '.'); @@ -120,15 +73,7 @@ gulp.task('copy:client', () => .pipe(gulp.dest('./built/client/assets/')) ); -gulp.task('doc', () => - gulp.src('./src/docs/**/*.styl') - .pipe(stylus()) - .pipe(cleanCSS()) - .pipe(gulp.dest('./built/docs/assets/')) -); - gulp.task('build:client', gulp.parallel( - 'build:client:script', 'build:client:styles', 'copy:client' )); @@ -137,7 +82,6 @@ gulp.task('build', gulp.parallel( 'build:ts', 'build:copy', 'build:client', - 'doc' )); gulp.task('default', gulp.task('build')); -- cgit v1.2.3-freya