首页 > 解决方案 > 有没有办法在通用 SSR 构建中停止控制台日志?

问题描述

当我在有角度的通用 SSR 中运行我的应用程序时,我遇到了关于在服务器控制台中打印控制台日志的问题。

我尝试了一些互联网上的解决方案。它在浏览器级别工作它不在服务器级别工作。下面是我尝试过的代码。我将以下代码放在 main.ts 文件中,但在 SSR 级别没有任何作用。

if (environment.production) {
  enableProdMode();
  if(window){
    window.console.log=function(){};
  } else {
    console.log=function(){};
  }
}

上面的代码在浏览器上运行良好,在服务器控制台上不起作用。当我运行这个命令时 npm run serve:ssr

请帮我解决问题。

标签: angularangular7angular-universal

解决方案


那应该行得通。

你确定这是在生产中构建的吗?在 之前放置一个 console.logenableProdMode();以确保代码通过那里输入。(另一个刚刚看到控制台不再显示)

if (environment.production) {
  console.log('Enabling prod');
  enableProdMode();
  if(window){
    window.console.log=function(){};
  } else {
    console.log=function(){};
  }
   console.log('Production enabled, this console.log won't appear');
}

我的 package.json 中有这个命令可以尝试:

 "build:ssr:serve": "ng build --prod && ng run ssr:server:production && node dist/server"

然后用: 执行它,npm run build:ssr:serve第二个 console.log 不显示。


推荐阅读