angular - 有没有办法在通用 SSR 构建中停止控制台日志?
问题描述
当我在有角度的通用 SSR 中运行我的应用程序时,我遇到了关于在服务器控制台中打印控制台日志的问题。
我尝试了一些互联网上的解决方案。它在浏览器级别工作它不在服务器级别工作。下面是我尝试过的代码。我将以下代码放在 main.ts 文件中,但在 SSR 级别没有任何作用。
if (environment.production) {
enableProdMode();
if(window){
window.console.log=function(){};
} else {
console.log=function(){};
}
}
上面的代码在浏览器上运行良好,在服务器控制台上不起作用。当我运行这个命令时 npm run serve:ssr
请帮我解决问题。
解决方案
那应该行得通。
你确定这是在生产中构建的吗?在 之前放置一个 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 不显示。