mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Add dev server and finish build
This commit is contained in:
parent
db4787a259
commit
ac903b87e0
5 changed files with 1364 additions and 435 deletions
49
gulpfile.js
49
gulpfile.js
|
@ -1,13 +1,35 @@
|
|||
'use strict';
|
||||
|
||||
const { src, dest, series, parallel } = require('gulp');
|
||||
const browserSync = require('browser-sync').create();
|
||||
const del = require('del');
|
||||
const babel = require('gulp-babel');
|
||||
const concat = require('gulp-concat');
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
const htmlmin = require('gulp-htmlmin');
|
||||
const imagemin = require('gulp-imagemin');
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
const webpack_stream = require('webpack-stream');
|
||||
const webpack_config = require('./webpack.prod.js');
|
||||
const inject = require('gulp-inject');
|
||||
const postcss = require('gulp-postcss');
|
||||
const cssnano = require('cssnano');
|
||||
const autoprefixer = require('autoprefixer');
|
||||
|
||||
function devBrowser() {
|
||||
browserSync.init({
|
||||
server: {
|
||||
baseDir: "./dist"
|
||||
},
|
||||
port: 8080
|
||||
});
|
||||
}
|
||||
|
||||
function setStandalone() {
|
||||
return src(['src/standalone.js', 'src/scripts/apploader.js'], {base: './src/'})
|
||||
.pipe(concat('scripts/apploader.js'))
|
||||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
||||
// Clean assets
|
||||
function clean() {
|
||||
|
@ -15,7 +37,7 @@ function clean() {
|
|||
}
|
||||
|
||||
function javascript() {
|
||||
return src('src/**/*.js', {base: './src/'})
|
||||
return src(['src/**/*.js', '!src/bundle.js'], {base: './src/'})
|
||||
.pipe(sourcemaps.init({loadMaps: true}))
|
||||
.pipe(babel({
|
||||
presets: ['@babel/preset-env']
|
||||
|
@ -28,16 +50,24 @@ function javascript() {
|
|||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
||||
function webpack() {
|
||||
return webpack_stream(webpack_config)
|
||||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
||||
function css() {
|
||||
return src('src/**/*.css', {base: './src/'})
|
||||
.pipe(sourcemaps.init({loadMaps: true}))
|
||||
.pipe(cssnano())
|
||||
.pipe(postcss([
|
||||
autoprefixer(),
|
||||
cssnano()
|
||||
]))
|
||||
.pipe(sourcemaps.write('.'))
|
||||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
||||
function html() {
|
||||
return src('src/**/*.html', {base: './src/'})
|
||||
return src(['src/**/*.html', '!src/index.html'], {base: './src/'})
|
||||
.pipe(htmlmin({ collapseWhitespace: true }))
|
||||
.pipe(dest('dist/'));
|
||||
}
|
||||
|
@ -53,4 +83,13 @@ function copy() {
|
|||
.pipe(dest('dist/'))
|
||||
}
|
||||
|
||||
exports.default = series(clean, parallel(javascript, css, html, images, copy))
|
||||
function injectBundle() {
|
||||
return src('src/index.html', {base: './src/'})
|
||||
.pipe(inject(
|
||||
src(['src/scripts/apploader.js'], {read: false}, {base: './src/'}), {relative: true}
|
||||
))
|
||||
.pipe(dest('dist/'))
|
||||
}
|
||||
|
||||
exports.default = series(clean, parallel(javascript, webpack, css, html, images, copy), injectBundle)
|
||||
exports.run = series(exports.default, setStandalone, devBrowser)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue