Как передать конфигурацию в indexTransform в angular-cli?

Я хотел бы использовать функциональность indexTransform в проекте angular 8 (angular-cli), но свойство конфигурации targetOptions остается пустым.

Я пробовал пример проекта здесь: https://github.com/just-jeb/angular-builders/tree/master/packages/custom-webpack/examples/full-cycle-app

Но в примере проекта конфигурация тоже пуста.

module.exports = (targetOptions, indexHtml) => {
    targetOptions.configuration // configuration is empty
}

Где я могу определить конфигурацию, которая должна быть передана в функцию обратного вызова?


person Franz    schedule 08.08.2019    source источник


Ответы (1)


конфигурация отражает значение, переданное параметрам --configuration=configurationName в сборке ng, поэтому в режиме разработки всегда пусто.

если вы строите с флагом --prod (это псевдоним --configuration=production), вы можете увидеть правильно заполненную конфигурацию

Ниже вы можете найти пример использования. Этот код добавляет в элемент head элемент метатега с расположением службы API.

const allSettings = {
    development: {
        apiUrl: "http://localhost:8000"
    },
    production: {
        apiUrl: "https://myapiserver/"
    }
}

module.exports = (targetOptions, indexHtml) => {
    const i = indexHtml.indexOf('</head>');

    // if empty assumes 'development'
    const configuration = targetOptions.configuration || "development";

    // load settings (by configuration)    
    const settings = allSettings[configuration];

    // build meta tag
    let customHead = "";
    customHead += `<meta name="apiUrl" content="${setting.apiUrl}">`;

    // add customHead before head end tag
    return `${indexHtml.slice(0,i)}
            ${customHead}
            ${indexHtml.slice(i)}`
}
person savarex    schedule 11.11.2019