@aniyajs/rotor
Version:
基于webpack5开发的一款专注于打包、运行的工具
71 lines (61 loc) • 1.75 kB
JavaScript
const path = require("path");
const paths = require("../utils/paths");
const webpackConfig = require("./webpack.config");
const fs = require("fs-extra");
const { reviveFunctions } = require("../utils/common");
delete require.cache[require.resolve(paths.appTempMetaJs)];
const defaultConfig = reviveFunctions(
require(paths.appTempMetaJs).lastConfig,
);
// webpack最新配置
// config最新配置
function getClientEnvironment() {
let stringified = {};
let oldDefine = {}
Object.assign(stringified, {
...Object.keys(defaultConfig?.define ?? {}).reduce((env, key) => {
env[key] =
typeof defaultConfig?.define[key] === "string"
? JSON.stringify(defaultConfig?.define[key])
: defaultConfig?.define[key];
return env;
}, {}),
});
if (
paths.appEnvConfigTemp &&
fs.existsSync(
path.join(
paths.appEnvConfigTemp,
`config.${process.env.ANIYAJS_ENV}.js`,
),
)
) {
oldDefine = require(
path.resolve(
paths.appEnvConfigTemp,
`config.${process.env.ANIYAJS_ENV}.js`,
),
).default?.define;
Object.assign(stringified, {
...Object.keys(oldDefine).reduce((env, key) => {
env[key] =
typeof oldDefine[key] === "string"
? JSON.stringify(oldDefine[key])
: oldDefine[key];
return env;
}, {}),
});
}
const configFactory = webpackConfig(defaultConfig, stringified);
return {
raw: {
...defaultConfig,
define: {
...defaultConfig?.define,
...oldDefine
}
},
latestConfig: configFactory,
};
}
module.exports = getClientEnvironment;