ecology9-src4js-tools
Version:
src4js-tools
54 lines (47 loc) • 1.83 kB
JavaScript
;
process.env.BABEL_ENV = 'production';
process.env.NODE_ENV = 'production';
process.on('unhandledRejection', err => {
throw err;
});
const fs = require('fs-extra');
const paths = require('../config/paths-html');
const versions = require('../versions');
const versionsCom = require('../versionsCom');
const v = versionsCom.concat(versions);
paths.forEach(setting => {
if (setting.appHtml && setting.htmlName && setting.servedPath && setting.appBuild) {
const htmlPath = setting.htmlName;
const js = setting.jsName ? setting.servedPath + setting.jsName : '';
const jsSingle = setting.jsSingleName ? setting.servedPath + setting.jsSingleName : '';
fs.readFile(htmlPath, { encoding: 'utf8' },(err, data) => {
if(err) return;
let oldData = data;
if (oldData) {
v.forEach(obj => {
oldData = oldData.replace(new RegExp(`\\"${obj.key}[^\\"]*\\"`, 'g'), `"${obj.src}"`);
if (obj.key === js && jsSingle) {
oldData = oldData.replace(new RegExp(`\\"${jsSingle}[^\\"]*\\"`, 'g'), `"${jsSingle}?v=${obj.version}"`);
}
});
}
fs.writeFile(htmlPath, oldData, { 'flag': 'w' }, function(err) {
if(err) return;
if (setting.copyFiles && Array.isArray(paths.copyFilesPath)) {
paths.copyFilesPath.forEach(copyFile => {
if (htmlPath === copyFile.from) {
fs.copy(copyFile.from, copyFile.to, err => {
if (err) {
console.log(chalk.red('Failed to copy files.\n'));
printBuildError(err);
} else {
console.log('The ' + chalk.green(copyFile.from) + ' has copied to ' + chalk.green(copyFile.to) + '\n');
}
})
}
});
}
})
});
}
});