有没有办法在通用SSR构建中停止控制台日志?

问题描述 投票:0回答:1

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

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

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

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

请帮我解决这个问题。

angular angular7 angular-universal
1个回答
1
投票

这应该工作。

你确定它正在生产中吗?在enableProdMode();之前放置一个console.log,以确保代码通过那里进入。 (另一个刚看到控制台不再显示)

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

© www.soinside.com 2019 - 2024. All rights reserved.