[英]How to strip testing code when React JS is minified by for production?
在我的 React 功能组件中,我使用useEffect
进行一些调试日志记录,但我只希望在非--production
构建中运行时使用它。
// something like
if (process.env.NODE_ENV !== 'production') {
// I want the contents of this block removed on production builds, but it is inside a function
useEffect(() => {
console.log("authState changed", AuthStates[authState]);
}, [authState]);
useEffect(() => {
console.log("authToken changed", authToken);
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
}
}, [authToken]);
useEffect(() => {
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
} else {
console.log("tokenExpiresOn cleared");
}
}, [tokenExpiresOn]);
}
您不能有条件地声明挂钩。 你可以在顶层声明,你可以把你的业务逻辑放在钩子里,例如下面。
useEffect(() => {
if (process.env.NODE_ENV !== 'production'){
console.log("authToken changed", authToken);
if (tokenExpiresOn) {
console.log(
`token expires in ${(tokenExpiresOn - Date.now()).toLocaleString()}ms`
);
}
}
}, [authToken]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.