hexo-bilibili-bangumi
Version:
83 lines (77 loc) • 1.96 kB
JavaScript
/*
* @Author : HCLonely
* @Date : 2025-07-09 19:24:22
* @LastEditTime : 2025-07-10 14:02:12
* @LastEditors : HCLonely
* @FilePath : /hexo-bilibili-bangumi/scripts/babel.js
* @Description : Babel编译脚本,用于将ES6+代码转换为兼容版本。分别处理Node.js环境代码和浏览器环境代码,
* 其中Node.js代码使用@babel/preset-env进行转换,浏览器代码额外使用minify进行压缩。
*/
const babel = require('@babel/core');
const fs = require('fs');
const nodeFiles = [
{
from: 'src/index.js',
to: 'index.js'
},
{
from: 'src/lib/util.js',
to: 'lib/util.js'
},
{
from: 'src/lib/get-bili-data.js',
to: 'lib/get-bili-data.js'
},
{
from: 'src/lib/get-bgm-data.js',
to: 'lib/get-bgm-data.js'
},
{
from: 'src/lib/get-bgmv0-data.js',
to: 'lib/get-bgmv0-data.js'
},
{
from: 'src/lib/get-anilist-data.js',
to: 'lib/get-anilist-data.js'
},
{
from: 'src/lib/get-simkl-data.js',
to: 'lib/get-simkl-data.js'
},
{
from: 'src/lib/bangumi-generator.js',
to: 'lib/bangumi-generator.js'
}
];
const browserFiles = [
{
from: 'src/lib/templates/index.js',
to: 'lib/templates/index.js'
},
{
from: 'src/lib/templates/pagination.js',
to: 'lib/templates/pagination.js'
}
];
const nodeOptions = {
presets: [
'@babel/preset-env'
],
plugins: [
'@babel/plugin-transform-runtime'
]
};
const browserOptions = {
presets: ['@babel/preset-env', 'minify'],
targets: '> 0.25%, not dead'
};
nodeFiles.forEach((file) => {
const code = fs.readFileSync(file.from, 'utf-8');
const result = babel.transformSync(code, nodeOptions);
fs.writeFileSync(file.to, result.code);
});
browserFiles.forEach((file) => {
const code = fs.readFileSync(file.from, 'utf-8');
const result = babel.transformSync(code, browserOptions);
fs.writeFileSync(file.to, result.code);
});