webpack-builder-react-xd
Version:
小盾安全前端团队构建器
61 lines (48 loc) • 1.24 kB
JavaScript
const fs = require('fs');
const paths = require('./paths');
const chalk = require('chalk');
const { createHash } = require('crypto');
const publicPath = require('./publicPath');
function getAlais() {
const folderName = fs.readdirSync(paths.appSrc).filter(v => !v.includes('.'));
const alais = {
src: paths.appSrc,
};
folderName.forEach(name => {
alais[name] = paths.appSrc + '/' + name;
});
return alais;
}
function getPublicPath() {
const { prodPublicPath, bundle } = getBuilderConfig();
let env = process.env.NODE_ENV;
if (process.env.NODE_ENV === 'production') {
env = process.env.prod_env;
if (prodPublicPath) {
return prodPublicPath;
}
}
return publicPath({ env, bundle });
}
function getBuilderConfig() {
const packages = fs.readFileSync(paths.appPackageJson, 'utf-8');
let res;
try {
res = JSON.parse(packages)['builder-config'];
} catch (error) {
console.error(chalk.red(error));
process.exit(1);
}
return res;
}
function createEnvironmentHash(env) {
const hash = createHash('md5');
hash.update(JSON.stringify(env));
return hash.digest('hex');
}
module.exports = {
getAlais,
getPublicPath,
getBuilderConfig,
createEnvironmentHash,
};