const path = require('path');
const { spawnSync } = require('cross-spawn');
const repoFolder = path.join(path.dirname(__filename), '..');
// 设置环境变量
process.env.TIDDLYWIKI_PLUGIN_PATH = `${repoFolder}/plugins`;
process.env.TIDDLYWIKI_THEME_PATH = `${repoFolder}/themes`;
process.env.TIDDLYWIKI_LANGUAGE_PATH = `${repoFolder}/languages`;
process.env.TIDDLYWIKI_EDITION_PATH = `${repoFolder}/editions`;
function shell(command, options) {
console.log(spawnSync(command, {
cwd: repoFolder,
stdio: 'inherit',
shell: true,
...options,
}).output.toString());
}
function shellI(command, options) {
try {
shell(command, options);
} catch (error) {
console.error(`[Shell Command Error] ${error}`);
}
}
// 构建在线HTML版本
function buildOnlineHTML(distDir, htmlName, minify, excludeFilter) {
// ...(省略了未更改的部分)
// 使用 cross-spawn 的 spawnSync 替换 shell 调用
spawnSync('rm', ['-rf', distDir], { cwd: repoFolder, stdio: 'inherit' });
spawnSync('mkdir', [distDir], { cwd: repoFolder, stdio: 'inherit' });
// ...(对其他 shell 调用进行类似的替换)
}
// 构建离线HTML版本
function buildOfflineHTML(distDir, htmlName, minify, excludeFilter) {
// ...(省略了未更改的部分)
// 使用 cross-spawn 的 spawnSync 替换 shell 调用
}
// 构建插件源
function buildLibrary(pluginFilter, distDir, minify) {
// ...(省略了未更改的部分)
// 使用 cross-spawn 的 spawnSync 替换 shell 调用
}
module.exports = {
buildOnlineHTML: buildOnlineHTML,
buildOfflineHTML: buildOfflineHTML,
buildLibrary: buildLibrary,
};