gpt4 book ai didi

javascript - 如何在开发中自动删除 console.logs()?

转载 作者:行者123 更新时间:2023-12-05 00:36:33 25 4
gpt4 key购买 nike

问题
尝试 lint 具有 30 多个 console.logs() 的旧 React 应用程序贯穿整个代码库。我分别设置了一个 linter 和代码格式化程序 ESLint 和 Prettier。
这个设置效果很好,它告诉我console.logs()都在源头。但是,--fix ESLint 的标志不会删除日志。有什么方法可以自动删除console.logs() ?我已经看过有关如何通过 webpack 执行此操作以防止日志进入生产环境的文章,但是,我想在预提交或预推送 Hook 中更早地删除这些。
我试过的
我尝试使用 gulp-strip-debug 设置脚本.它因断言错误而失败。当我从 './src/**.js' 更改 src 路径时至'./**.js'我没有收到断言错误,但没有任何 react 。

Learned about this from Jun711 blog. The "How to remove console log from your JavaScript files programmatically?" blog post.


Gulpfile gulpfile.js : 项目目录的根
const gulp = require('gulp');
const stripDebug = require('gulp-strip-debug');
gulp.task(
'strip-debug',
() =>
gulp
.src('./src/**.js') // input file path
.pipe(stripDebug()) // execute gulp-strip-debug
.pipe(gulp.dest('./')) // output file path
);

包.json
{
"name": "end-the-pandemic",
"version": "1.0.0",
"dependencies": {
"shelter-in-place": "11.5.20",
"stay-home": "11.5.21",
"who-is-still-voting-for-trump": "11.3.20",
"seriously-why": "2.0.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"lint": "eslint '*/**/*.js' --quiet --fix",
"clean": "gulp strip-debug",
"test": "react-scripts test",
"eject": "react-scripts eject",
},
...
终端 yarn clean输出
AssertionError [ERR_ASSERTION]: Task function must be specified
显然,我本可以在写这个问题的时间里手动进行搜索并删除其中的大部分,但为了将来引用,有没有用命令来做到这一点?我想把 yarn clean如果可能的话,在预提交钩子(Hook)中。

最佳答案

你可以做这个把戏在这种情况下会很好

if (env === 'production') {
console.log = function () {};
}
这将覆盖真正的 log函数变成一个空的

make sure you add it at the top of your react app


另一种解决方案
有一个名为 babel-plugin-transform-remove-console 的包可以帮助你
npm 安装后
npm install babel-plugin-transform-remove-console
安装后创建 .babelrc项目根目录中的文件 dir并将这一行添加到它
{
"plugins": ["transform-remove-console"]
}

关于javascript - 如何在开发中自动删除 console.logs()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64706736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com