我在用角度通用SSR运行应用程序时遇到有关在服务器控制台中打印控制台日志的问题。
我尝试了Internet中的一些解决方案。它在浏览器级别工作,不在服务器级别工作。下面是我尝试过的代码。我将下面的代码放在main.ts文件中,但在SSR级别上没有任何作用。
if (environment.production) {
enableProdMode();
if(window){
window.console.log=function(){};
} else {
console.log=function(){};
}
}
上面的代码在浏览器中可以正常使用,并且不能在服务器控制台上运行。当我运行此命令时,npm run serve:ssr
请帮助我解决问题。
答案 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不显示。