用 console.log()在控制台看不到输出 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chenqy930
V2EX    Node.js

用 console.log()在控制台看不到输出

  •  
  •   chenqy930 2018-05-18 09:11:20 +08:00 18596 次点击
    这是一个创建于 2712 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近需要修改一个 node.js + webpack 实现的项目,调试时候想要看到一些输出,试用了 console.log()、debug 模块的 debug(),都看不到输出。

    项目中用到了 winston 模块做日志记录,于是我也尝试了 winston('info','something'),也没有输出,

    请问大家这会是什么原因呢?求助~~
    23 条回复    2018-05-18 17:53:26 +08:00
    wukaichao
        1
    wukaichao  
       2018-05-18 09:14:55 +08:00
    会不会还没运行到 log 的时候就已经中断了?
    noe132
        2
    noe132  
       2018-05-18 09:16:46 +08:00 via Android
    有可能 log 所在 shell 不是当前 shell 而是 node 后台 spawn 出来的,并且 stdout 没有处理
    miketeam
        3
    miketeam  
       2018-05-18 09:22:53 +08:00 via iPhone
    你 html 的头部是!html
    justicelove
        4
    justicelove  
       2018-05-18 09:29:42 +08:00
    赶紧给浏览器厂商提 BUG,肯定是浏览器的问题
    chenqy930
        5
    chenqy930  
    OP
       2018-05-18 09:35:16 +08:00
    @noe132 噢还有这个可能,那这该怎么办呢?
    chenqy930
        6
    chenqy930  
    OP
       2018-05-18 09:35:44 +08:00
    @miketeam 想在后台看输出的,应该跟 html 没有关系吧?
    chenqy930
        7
    chenqy930  
    OP
       2018-05-18 09:35:59 +08:00
    @wukaichao 应该不会
    csx163
        8
    csx163  
       2018-05-18 09:49:05 +08:00
    看一下编码,上次 gbk 的没有输出
    KeepPro
        9
    KeepPro  
       2018-05-18 09:50:48 +08:00 via Android
    有可能是 console 函数被覆盖了。
    dr490n
        10
    dr490n  
       2018-05-18 09:53:43 +08:00
    这种问题请先把 package.json 里面的 scripts 和你启动服务端的命令发出来啊?
    没有代码怎么一步步帮你定位问题呢?
    (是不是跑生产环境的配置了,有的配置里面生产环境会忽略掉 console 输出的……)
    abowloflrf
        11
    abowloflrf  
       2018-05-18 10:12:22 +08:00 via iPhone
    还有一种原因 是不是把 chrome 控制台的 log 输出级别手抖改了?需要改 default 或者把 info 勾上。
    chenqy930
        12
    chenqy930  
    OP
       2018-05-18 10:16:30 +08:00
    @dr490n
    "scripts": {
    "build:dev": "npm run clean && npm run preprocess && npm run webpack -- --watch",
    "build": "npm run clean && npm run preprocess && npm run webpack",
    "clean:dist": "npm run rimraf -- dist",
    "clean": "npm cache clean && npm run clean:dist",
    "lint": "eslint src/**/*.js",
    "node": "node",
    "preprocess": "node config/preprocess.js",
    "rimraf": "rimraf",
    "server": "node server/index.js",
    "start": "npm run build && npm run server",
    "test": "echo \"Error: no test specified\" && exit 1",
    "webpack": "webpack --config webpack.config.js --progress --profile",
    "yarn": "yarn --ignore-engines"
    },


    刚注意看了一下输出,
    2018-05-18T00:47:17.942Z [INFO] config: {"env":"production","logLevel":"silly","serverPort":8080}
    2018-05-18T00:47:17.950Z [INFO] Webportal server starts on port 8080
    2018-05-18T00:47:42.867Z [WARN] Error: Page not found

    确实是在 production, 然后我在配置文件中改成了 development, 还是没有输出><
    2018-05-18T02:14:09.554Z [INFO] config: {"env":"development","logLevel":"silly","serverPort":8080}
    will0404
        13
    will0404  
       2018-05-18 10:24:29 +08:00
    楼上很多人看不到 nodejs 节点吗?跟 html 和浏览器有什么关系。

    首先这个可能性确实很多而你提供的信息太少。
    你既然提到了 webpack,莫非你 node 运行的代码是编译后的?那么有可能是编译期间 console 被去掉了,检查一下 webpack 配置吧。
    理论上后端代码不需要编译,我猜你是用了新语法所以用了 webpack+babel 吧。
    chenqy930
        14
    chenqy930  
    OP
       2018-05-18 10:55:20 +08:00
    @will0404
    1、package.json 中没有看到 babel 模块,所以应该没有用到 babel。
    2、运行前确实有个一分钟左右的编译过程,webpack 配置的话有一个文件是 webpack.common.js ,里面的模块有 entry、output、resolve、module、plugins 和 node,哪块会是跟 console 被去掉有关的呢?
    will0404
        15
    will0404  
       2018-05-18 11:12:01 +08:00
    @chenqy930 一般是用 UglifyJsPlugin 插件做这个事。

    顺便一说,js 是动态语言,你根本不需要编译,除非用到了 node 不支持的语法而且非用不可,这种情况不多。
    Solace202
        16
    Solace202  
       2018-05-18 11:26:33 +08:00
    换个浏览器试试呗,
    Solace202
        17
    Solace202  
       2018-05-18 11:29:45 +08:00
    或者 webpack 打包完后,在打包好的文件中找找你的 console 还在不在,不在说明被过滤了,自己新加上去
    lastpass
        18
    lastpass  
       2018-05-18 11:43:25 +08:00 via Android
    emmm,你可以在浏览器上打断点,然后手动输命令输出。
    yizi
        19
    yizi  
       2018-05-18 11:44:23 +08:00
    最快的办法就是搜索项目里面已经存在的日志输出方法,看看之前的代码是如何做 debug 的。
    还有就像楼上说的,需要看 webpack 是编译前端还是后端,如果跟后端没关系的话,就不用看 webpack 了。
    另外需要注意的是如果你在前端代码 debug,shell 里面是看不到的,需要去浏览器里面看(这个估计没人会犯)。
    使用了 winston 的话,会创建一个 logger,打印日志用这个 logger。
    还不行的话,把 build:dev 里面的 npm run preprocess 拿出去,自己单独先启动 node,然后再开 webpack,不过我感觉不是这个原因。
    YenvY
        20
    YenvY  
       2018-05-18 12:56:16 +08:00
    换成 console.warn 看一眼
    chenqy930
        21
    chenqy930  
    OP
       2018-05-18 17:47:07 +08:00
    @Yokira 怎么看 webpack 是编译前端还是后端呀.. 我就是用的 npm start...

    另外好像找不到项目用来输出其他调试信息的代码,用到 winston 模块的只在这一段,
    app.use((err, req, res, next) => {
    logger.warn('%s', err.stack);
    res.status(err.status || 500).json({
    message: err.message,
    error: config.env === 'development' ? err.stack : {}
    });
    });

    输出的信息类似于:
    2018-05-18T09:39:12.701Z [INFO] GET /view.html 304 0.330 ms - -
    2018-05-18T09:39:12.709Z [INFO] GET /styles/view.bundle.css 304 0.638 ms - -
    2018-05-18T09:39:12.709Z [INFO] GET /styles/layout.bundle.css 304 0.913 ms - -
    2018-05-18T09:39:12.710Z [INFO] GET /scripts/view.bundle.js 304 1.225 ms - -
    chenqy930
        22
    chenqy930  
    OP
       2018-05-18 17:47:34 +08:00
    @YenvY 试过了 不行><
    lululau
        23
    lululau  
       2018-05-18 17:53:26 +08:00
    用了 nodemon 之类的了吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5410 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 09:38 PVG 17:38 LAX 02:38 JFK 05:38
    Do have faith in what you're doing.
    /div>
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86