2

我想在 angular 8 (angular-cli) 项目中使用 indexTransform 功能,但 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
}

我在哪里可以定义应该传递给回调函数的配置?

4

1 回答 1

3

configuration 反映了在 ng build 中传递给 --configuration= configurationName选项的值,因此在开发模式下始终为空。

如果您使用 --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)}`
}
于 2019-11-11T10:44:27.807 回答