Спасибо за вашу помощь, но я не понимаю ваших предложений.
Наконец, я решил собрать все файлы в папке и установить значение hostReplacementPaths в AngularCompilerPlugin.
Я написал как ниже.
tenant-util. js
const TENANT_ARG_KEY = '--tenant=';
module.exports = {
getTenant
};
/**
* webpack arg example: --tenant=company1
* @param {string[]} argv process.argv
*/
function getTenant(argv /* : string[] */) /* : string */ {
if (!Array.isArray(argv)) {
return '';
}
for (let i = 0; i < argv.length; ++i) {
if (!argv[i].startsWith(TENANT_ARG_KEY)) {
continue;
}
return argv[i].substr(TENANT_ARG_KEY.length);
}
return '';
}
webpack.common. js
const tenantUtils = require('./tenant-utils');
const tenant = tenantUtils.getTenant(process.argv);
const hostReplacementPaths = {};
if (tenant) {
const glob = require('glob');
const replaceToFolder = `environments/${tenant}`;
const filenamesInEnvironment = glob.sync(`./src/${replaceToFolder}/**/*.*`);
if (!filenamesInEnvironment) {
throw Error('check the tenant setting');
}
for (const filename of filenamesInEnvironment) {
const originalFilename = filename.replace(replaceToFolder, 'main/webapp')
hostReplacementPaths[originalFilename] = filename;
}
}
...
new AngularCompilerPlugin({
mainPath: utils.root('src/main/webapp/app/app.main.ts'),
tsConfigPath: utils.root('tsconfig.app.json'),
sourceMap: true,
hostReplacementPaths: hostReplacementPaths
}),