V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
waiaan
V2EX  ›  Node.js

如何调试 npm run build?

  •  
  •   waiaan · 2021-04-23 10:08:49 +08:00 · 4426 次点击
    这是一个创建于 1305 天前的主题,其中的信息可能已经有所发展或是发生改变。

    打包项目的时候出错,已排除项目的问题,求问如何打断点调试? 谢谢!

    第 1 条附言  ·  2021-04-23 16:03:28 +08:00

    按照帖子里大佬们的指导,用DEBUG=* 的方法测试,运行了一段时间后卡住,结果如下:

    
      ......
    
      eslint:linter Generating fixed text for 文件名 (pass 1) +5s
      eslint:text-fixer Applying fixes +5s
      eslint:text-fixer shouldFix parameter was false, not attempting fixes +0ms
      building for prod environment...
    

    每次的文件名都不一样,能看出是什么问题吗?

    21 条回复    2021-04-24 07:59:01 +08:00
    murmur
        1
    murmur  
       2021-04-23 10:11:40 +08:00
    package.json 里不是写了 build 对应哪条指令,直接进那个文件执行就是了啊
    murmur
        2
    murmur  
       2021-04-23 10:12:36 +08:00
    硬刚 webpack 和 babel,先佩服楼主的勇气,祝好运,我是没这个勇气,一般遇到这个情况我直接把以前的依赖全回滚
    DOLLOR
        3
    DOLLOR  
       2021-04-23 10:22:02 +08:00
    这种问题出错一般是先移走 node_modules 再执行一遍 npm install 试试吧。
    waiaan
        4
    waiaan  
    OP
       2021-04-23 10:49:12 +08:00
    @murmur
    @DOLLOR
    试过了,后面直接卡死,没有任何信息,可能进入死循环了。
    @murmur
    进了,但是没办法断点。
    geylnu
        5
    geylnu  
       2021-04-23 11:11:16 +08:00
    看报错去 github 搜 issue,大部分问题都是相似的
    qqqq11
        6
    qqqq11  
       2021-04-23 11:14:27 +08:00
    报什么错
    Curtion
        7
    Curtion  
       2021-04-23 11:26:49 +08:00
    一般看错误日志就可以解决大部分问题,真要打断点的话一般 npm run build 调用的是 node_modules/.bin/webpack,最后实际上也是通过 node 在调用 js,你自己设定一下使用 node debug 调试就行了。
    waiaan
        8
    waiaan  
    OP
       2021-04-23 11:46:40 +08:00
    @geylnu
    @qqqq11
    @Curtion
    现在是没报错日志,卡住不动了,怀疑是进入了死循环。
    run dev 倒是没问题。
    phobal
        9
    phobal  
       2021-04-23 12:37:43 +08:00 via iPhone
    切到上一次能正常 build 的版本试试,如果可以说明是这次迭代出了问题,然后再去慢慢删代码,最小范围化排查问题。
    ycr6708536
        10
    ycr6708536  
       2021-04-23 13:18:42 +08:00
    webstrom
    hyrious
        11
    hyrious  
       2021-04-23 13:39:11 +08:00
    建议先把 node_modules 删了重新 npm install 一下,然后加个环境变量 DEBUG=* 跑 npm run build 试试
    LokiSharp
        12
    LokiSharp  
       2021-04-23 13:42:31 +08:00
    WebStorm 直接打断点跑不就好了 右键点 npm 里的命令 debug
    TomatoYuyuko
        13
    TomatoYuyuko  
       2021-04-23 13:44:00 +08:00
    把依赖都删了重新 install,或者换 yarn 试试
    IsaacYoung
        14
    IsaacYoung  
       2021-04-23 14:00:58 +08:00
    vscode 不是可以直接 debug npm scripts 了吗
    donlian
        15
    donlian  
       2021-04-23 14:42:56 +08:00
    设置一下 DEBUG=* npm run build 看下日志走到哪里去了

    ps: debug 是大部分的日志工具包
    waiaan
        16
    waiaan  
    OP
       2021-04-23 15:41:29 +08:00
    @hyrious
    @donlian
    多谢,这个 DEBUG=* 具体怎么操作?
    hyrious
        17
    hyrious  
       2021-04-23 15:47:21 +08:00
    @waiaan
    linux/macos:
    直接执行 DEBUG=* npm run build (打在同一行)
    windows:
    set "DEBUG=*"
    npm run build
    waiaan
        18
    waiaan  
    OP
       2021-04-23 15:48:05 +08:00
    @donlian
    @hyrious
    找到了 debug 包,我试试。
    gbin
        19
    gbin  
       2021-04-23 15:59:42 +08:00 via Android
    不介意微信联系,我来帮忙看看? U3luY2hlcl9QeWxvbg==
    jinliming2
        20
    jinliming2  
       2021-04-24 01:00:37 +08:00
    断点调试方法:先看你的 package.json 里 build 的脚本怎么写的。然后用 node --inspect-brk 去执行。
    比如,如果是 webpack 的话,就 node --inspect-brk ./node_modules/.bin/webpack 参数
    通过 node 的 inspect-brk 参数启动后,node 会自动断点断在 webpack 入口的第一行。这时打开 Chrome,随便一个页面打开 devTools,在左上角会出现一个绿色的 Node.JS 图标(在切换手机显示模式按钮的右边),点击后就会自动连接到 node 的 debug,然后进 source 标签下单步执行就行了。
    w4ngzhen
        21
    w4ngzhen  
       2021-04-24 07:59:01 +08:00
    npm run 的时候,添加'--verbose'呀,会有很多信息。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1010 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.