有什么方法可以停止通用SSR构建中的控制台日志?

时间:2019-04-09 09:05:24

标签: angular angular7 angular-universal

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

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

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

上面的代码在浏览器中可以正常使用,并且不能在服务器控制台上运行。当我运行此命令时,npm run serve:ssr

请帮助我解决问题。

1 个答案:

答案 0 :(得分:1)

应该可以。

您确定正在生产中吗?将console.log放在enableProdMode();之前,以确保代码从那里输入。 (然后不久,又看到控制台不再显示)

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不显示。