Как заменить файлы в папке с помощью конфигурации веб-пакета в JHipster? - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу заменить файлы в папке конфигурацией веб-пакета в JHipster. Например, dev-config заменяет файлы в папке «webapp/app/home» на «environments/dev/home».

Я знаю, @angular-devkit/build-angular:browser в чистом виде Angular может заменить файлы в конфигурациях, но он не используется в JHipster и, похоже, не может заменить файлы в папке.

1 Ответ

0 голосов
/ 30 апреля 2020

Спасибо за вашу помощь, но я не понимаю ваших предложений.

Наконец, я решил собрать все файлы в папке и установить значение 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
        }),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...