mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-04-23 06:09:33 +08:00
55 lines
1.1 KiB
JavaScript
55 lines
1.1 KiB
JavaScript
import fs from 'fs';
|
|
import browserify from 'browserify';
|
|
import gulp from 'gulp';
|
|
import prettier from 'gulp-prettier';
|
|
import header from 'gulp-header';
|
|
import eslint from 'gulp-eslint-new';
|
|
|
|
import pkg from './package.json';
|
|
|
|
const DEST_FILE = 'sub-store.min.js';
|
|
|
|
export function lint() {
|
|
return gulp
|
|
.src('src/**/*.js')
|
|
.pipe(eslint({ fix: true }))
|
|
.pipe(eslint.fix())
|
|
.pipe(eslint.format())
|
|
.pipe(eslint.failAfterError());
|
|
}
|
|
|
|
export function styles() {
|
|
return gulp
|
|
.src('src/**/*.js')
|
|
.pipe(
|
|
prettier({
|
|
singleQuote: true,
|
|
trailingComma: 'all',
|
|
tabWidth: 4,
|
|
bracketSpacing: true
|
|
})
|
|
)
|
|
.pipe(gulp.dest((file) => file.base));
|
|
}
|
|
|
|
export function scripts() {
|
|
return browserify('src/main.js')
|
|
.transform('babelify', {
|
|
presets: [ [ '@babel/preset-env' ] ]
|
|
})
|
|
.plugin('tinyify')
|
|
.bundle()
|
|
.pipe(fs.createWriteStream(DEST_FILE));
|
|
}
|
|
|
|
export function banner() {
|
|
return gulp
|
|
.src(DEST_FILE)
|
|
.pipe(header(fs.readFileSync('./banner', 'utf-8'), { pkg, updated: new Date().toLocaleString() }))
|
|
.pipe(gulp.dest((file) => file.base));
|
|
}
|
|
|
|
const build = gulp.series(lint, styles, scripts, banner);
|
|
|
|
export default build;
|