【问题标题】:how to set nodejs command `--max-http-header-size` with `nodemon --exec "babel-node" .`如何使用`nodemon --exec“babel-node”设置nodejs命令`--max-http-header-size`。
【发布时间】:2020-01-02 10:36:27
【问题描述】:

我正在将我的 nodejs 版本从 8 升级到 10。升级后,我现在无法在任何浏览器中运行我的应用程序。所以我用谷歌搜索了我的问题,发现节点 10 的标头大小已从 80kb 缩小到 8kb。我的应用程序标头大小超过 8kb。所以我需要用nodejs命令--max-http-header-size=80000来设置它。但我不知道如何使用nodemonbabel-node 进行设置。 请帮忙。

这是我的 nodemon.json

{
  "ext": "js jsx ejs json gql css",
  "exec": "babel-node"
}

这是我当前的 package.json:

"develop:server": "BABEL_ENV=server nodemon .",

我已经尝试过的解决方案:

{
  "ext": "js jsx ejs json gql css",
  "exec": "node --max-http-header-size=80000 ./node_modules/babel-cli/bin/babel-node.js"
}

正确的解决方案如下(选择其中之一):

  1. {
      "ext": "js jsx ejs json gql css",
      "exec": "NODE_OPTIONS=--max-http-header-size=80000 babel-node"
    }
    
  2. "develop:server": "NODE_OPTIONS=--max-http-header-size=80000 BABEL_ENV=server nodemon .",

【问题讨论】:

    标签: node.js nodemon babel-node


    【解决方案1】:

    我认为节点工程师将http-header-sizeversion 8.16.0 减少了。他们减少了它以防止像DDOS 等攻击。当我从节点version 8.9.1 to 8.16.0 升级时,我遇到了同样的问题。我是如何解决问题的在我的package.json 中,我添加了--max-http-header-size=80000 flag in start script 例如

    "scripts": {"start": "node --max-http-header-size=80000 server.js"}
    

    它奏效了。但是如果您的标头超过 8kb,那么您必须返回到以前的版本,直到出现正确的修复。

    【讨论】:

    • 嗨,阿尼,谢谢你的回答。是的,我注意到脚本可以工作,但是我如何使用 nodemon 和 babel-node 来做到这一点,因为我需要 babel-node 来转换整个应用程序和 nodemon 来观察变化
    • "scripts": { "start": "nodemon --max-http-header-size=80000 index.js --exec babel-node --presets babel-preset-env" }
    • 使用该脚本,它仍然无法正常工作 标题大小仍然 8kb 我刚刚找到了另一个可行的解决方案,即在 nodemon index.js 之前添加NODE_OPTIONS=--max-http-header-size=80000 无论如何,谢谢您的回复并尝试帮助我:)
    猜你喜欢
    • 2020-05-23
    • 2021-05-17
    • 2019-08-05
    • 2017-12-08
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2021-04-25
    相关资源
    最近更新 更多