mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2026-05-04 13:18:04 +08:00
build: Split sub-store.min.js for better performance on iOS devices
This commit is contained in:
@@ -11,12 +11,11 @@ import tap from 'gulp-tap';
|
||||
import pkg from './package.json';
|
||||
|
||||
export function peggy() {
|
||||
return gulp.src('src/**/*.peg')
|
||||
.pipe(tap(function (file) {
|
||||
const filename = path.basename(file.path).split(".")[0] + ".js";
|
||||
return gulp.src('src/**/*.peg').pipe(
|
||||
tap(function (file) {
|
||||
const filename = path.basename(file.path).split('.')[0] + '.js';
|
||||
const raw = fs.readFileSync(file.path, 'utf8');
|
||||
const contents =
|
||||
`import * as peggy from 'peggy';
|
||||
const contents = `import * as peggy from 'peggy';
|
||||
const grammars = String.raw\`\n${raw}\n\`;
|
||||
let parser;
|
||||
export default function getParser() {
|
||||
@@ -25,15 +24,17 @@ export default function getParser() {
|
||||
}
|
||||
return parser;
|
||||
}\n`;
|
||||
return newFile(filename, contents)
|
||||
.pipe(gulp.dest(path.dirname(file.path)))
|
||||
}));
|
||||
return newFile(filename, contents).pipe(
|
||||
gulp.dest(path.dirname(file.path)),
|
||||
);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
export function lint() {
|
||||
return gulp
|
||||
.src('src/**/*.js')
|
||||
.pipe(eslint({fix: true}))
|
||||
.pipe(eslint({ fix: true }))
|
||||
.pipe(eslint.fix())
|
||||
.pipe(eslint.format())
|
||||
.pipe(eslint.failAfterError());
|
||||
@@ -42,9 +43,14 @@ export function lint() {
|
||||
export function styles() {
|
||||
return gulp
|
||||
.src('src/**/*.js')
|
||||
.pipe(prettier({
|
||||
singleQuote: true, trailingComma: 'all', tabWidth: 4, bracketSpacing: true
|
||||
}))
|
||||
.pipe(
|
||||
prettier({
|
||||
singleQuote: true,
|
||||
trailingComma: 'all',
|
||||
tabWidth: 4,
|
||||
bracketSpacing: true,
|
||||
}),
|
||||
)
|
||||
.pipe(gulp.dest((file) => file.base));
|
||||
}
|
||||
|
||||
@@ -59,13 +65,13 @@ function scripts(src, dest) {
|
||||
{
|
||||
paths: [
|
||||
{
|
||||
'rootPathPrefix': '@',
|
||||
'rootPathSuffix': 'src',
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
rootPathPrefix: '@',
|
||||
rootPathSuffix: 'src',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
})
|
||||
.plugin('tinyify')
|
||||
.bundle()
|
||||
@@ -74,20 +80,39 @@ function scripts(src, dest) {
|
||||
}
|
||||
|
||||
function banner(dest) {
|
||||
return () => gulp
|
||||
.src(dest)
|
||||
.pipe(header(fs.readFileSync('./banner', 'utf-8'), {pkg, updated: new Date().toLocaleString('zh-CN')}))
|
||||
.pipe(gulp.dest((file) => file.base));
|
||||
return () =>
|
||||
gulp
|
||||
.src(dest)
|
||||
.pipe(
|
||||
header(fs.readFileSync('./banner', 'utf-8'), {
|
||||
pkg,
|
||||
updated: new Date().toLocaleString('zh-CN'),
|
||||
}),
|
||||
)
|
||||
.pipe(gulp.dest((file) => file.base));
|
||||
}
|
||||
|
||||
const artifacts = [
|
||||
{src: 'src/main.js', dest: 'sub-store.min.js'},
|
||||
{src: 'src/products/resource-parser.loon.js', dest: 'dist/sub-store-parser.loon.min.js'},
|
||||
{src: 'src/products/cron-sync-artifacts.js', dest: 'dist/cron-sync-artifacts.min.js'}
|
||||
{ src: 'src/main.js', dest: 'sub-store.min.js' },
|
||||
{
|
||||
src: 'src/products/resource-parser.loon.js',
|
||||
dest: 'dist/sub-store-parser.loon.min.js',
|
||||
},
|
||||
{
|
||||
src: 'src/products/cron-sync-artifacts.js',
|
||||
dest: 'dist/cron-sync-artifacts.min.js',
|
||||
},
|
||||
{ src: 'src/products/sub-store-0.js', dest: 'dist/sub-store-0.min.js' },
|
||||
{ src: 'src/products/sub-store-1.js', dest: 'dist/sub-store-1.min.js' },
|
||||
];
|
||||
|
||||
export const build = gulp.series(gulp.parallel(artifacts.map(artifact => scripts(artifact.src, artifact.dest))), gulp.parallel(artifacts.map(artifact => banner(artifact.dest))));
|
||||
export const build = gulp.series(
|
||||
gulp.parallel(
|
||||
artifacts.map((artifact) => scripts(artifact.src, artifact.dest)),
|
||||
),
|
||||
gulp.parallel(artifacts.map((artifact) => banner(artifact.dest))),
|
||||
);
|
||||
|
||||
const all = gulp.series(peggy, lint, styles, build)
|
||||
const all = gulp.series(peggy, lint, styles, build);
|
||||
|
||||
export default all;
|
||||
|
||||
Reference in New Issue
Block a user