Angular 11 字体内联失败

Ben*_*Ben 6 angular angular11

尝试在代理背后的系统中构建 angular11 应用程序。运行“ng build --prod”时出现此错误:

字体内联失败。 通过 Internet检索https://fonts.googleapis.com/css?family=Roboto:300,400,500&display=swap 时出错 。getaddrinfo ENOTFOUND fonts.googleapis.com

一些帖子说禁用它,指向这个角度文档URL以获取更多信息,但我无法让它工作。如果我将angular.json "optimization" 参数编辑到下面,我会得到一个架构验证失败...数据路径 .optimization 应该是布尔错误:

"optimization": { 
  "scripts": true,
  "styles": {
    "minify": true,
    "inlineCritical": true
  },
  "fonts": false
}
Run Code Online (Sandbox Code Playgroud)

如果我按照这篇文章(搜索“自动字体内联”)并在package.json 中添加以下内容,它似乎没有任何效果:

"optimization": { 
  "scripts": true,
  "styles": false,
  "fonts": false
}
Run Code Online (Sandbox Code Playgroud)

Bot*_*uja 27

按照 Angular 对您提到的URL的指导,我仅更改了 angular.json 文件,方式略有不同,它对我有用。这是我在生产属性下的 angular.json 文件中更改的内容。

"production": {
    ...
    "optimization": {
        "scripts": true,
         "styles": true,
         "fonts": false
     },
     ...
},
Run Code Online (Sandbox Code Playgroud)


30t*_*thh 11

根据 https://github.com/angular/angular-cli/pull/19848

设置环境HTTPS_PROXY变量即可完成这项工作。它在公司代理后面对我有用(不要忘记http://):

SET HTTPS_PROXY=http://<server-name>:<server-port>
ng build
Run Code Online (Sandbox Code Playgroud)

环境:Windows 10, nodejs v14.17.4, angular 12.2.0