我想在开发环境和生产环境中控制日志的输出
我不能在react组件中控制日志输出,我想在不同的开发环境中控制输出。
在next.js中有代码压缩。我想在压缩的时候删除console.log,但是我不知道怎么做。在“webpack”中,我试图删除console.log,但是我得到了一个错误。
config.plugins.push(
new UglifyJsPlugin({
uglifyOptions:{
compress: {
// warnings: false,
drop_debugger: true,
drop_console: true
}
}
})
)
return config
error :
static/development/pages/_app.js from UglifyJs
Unexpected token: keyword «const» [static/development/pages/_app.js:11375,0]
function Hook_test(props) {
const[open, setOpen] = useState(false);
const {
dispatch,
num
} = props
console.log("log test"); // I don't want to appear in a production environment,Development environment can appear
function setReducer() {
console.log(111111, change_add(num + 1)) dispatch(change_add(num + 1))
}
return ( < ><button onClick = { () = >{
setOpen(!open);
setReducer()
}
} > HOOK < /button>
<span>{open?"打开":"关闭"} {num}</span > </>
)
}
class Index extends Component {
render() {
return <Hook_test a={1222121} / >
}
}
发布于 2019-05-11 02:08:11
您是否考虑过使用日志记录包而不是console.log?例如,debug设置起来很简单。
使用日志记录包可能需要使用webpack,这可能是一个开始使用的过程,但如果您已经在使用React...如果你从Create React App开始,你会“免费”得到webpack,只需要导入或者需要一个调试库。
以下是使用debug和create-react-app的示例
// in src/App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
const debug = require('debug')('App');
class App extends Component {
render() {
const myVar = { a: 1, b: 2 };
debug('rendering...', myVar);
return (....
然后,要查看调试输出,只需从浏览器Javascript控制台将localStorage.debug='*'
或App
设置为。要查看在服务器端运行的代码的输出,请将所有调试输出的环境变量DEBUG
设置为*
或App
来运行服务器。
https://stackoverflow.com/questions/56074956
复制相似问题