如何使用 webpack-dev-server 设置 --max-http-header-size

Posted

技术标签:

【中文标题】如何使用 webpack-dev-server 设置 --max-http-header-size【英文标题】:how to setup --max-http-header-size with webpack-dev-server 【发布时间】:2020-05-23 10:31:10 【问题描述】:

我正在尝试使用 webpack-dev-server 设置我的 webpack 实例。 我将增加标头大小的设置传递给脚本“--max-http-header-size=100000”。

"dev": "npm run options-to-dev && env targets=manager && node --max-http-header-size=100000 webpack-dev-server --host 0.0.0.0 --progress --config webpack.config.js"

在执行脚本“dev”上出现错误

$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
  ^^^^^^^

SyntaxError: missing ) after argument list
    at Module._compile (internal/modules/cjs/loader.js:891:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11

没有 "node --max-http-header-size=100000" webpack 工作完美。

【问题讨论】:

【参考方案1】:

如果您想使用该选项运行webpack-dev-server,请使用以下选项:


  "scripts": "NODE_OPTIONS='--max-http-header-size=100000' webpack-dev-server"

可以在本文档页面的底部找到关于它的一点提示:https://webpack.js.org/configuration/dev-server/

如果不使用搜索选项很难找到 ;)

【讨论】:

【参考方案2】:

问题出在我的文件 webpack-dev-server 文件中。我改为通过webpack-dev-server 这一行../../node_modules/webpack-dev-server/bin/webpack-dev-server.js

 "dev:windows": "npm run options-to-dev && env targets=customer && node --max-http-header-size=100000 ../../node_modules/webpack-dev-server/bin/webpack-dev-server.js --host 0.0.0.0 --progress --config webpack.config.js"

【讨论】:

【参考方案3】:

我花了一些时间才弄清楚。它本质上不是 webpack devserver、nuxt 或其他在其上运行的框架的问题。

由于避免对节点上运行的任何网络服务器的 DDOS 攻击而强制执行限制的节点。

您可以在启动节点时给出参数--max-http-header-size 来更改值。

但我们中的许多人在顶部使用框架、react 或 nuxt 并没有启动 node ourserlf,因此很难找到确切的操作,并且必须自己启动所有内容并非易事。

cross-env 非常好,允许您设置环境变量,并且节点接受 NODE_OPTIONS 环境变量,其中所有自定义参数都可以设置。

在此处查看我在 nuxt 项目中使用的示例:

 "scripts": 
    "build": "nuxt-ts build",
    "dev": "cross-env NODE_OPTIONS=--max-http-header-size=200000 DEBUG='express:*' authority=.... resourceApi=... nuxt-ts --port 3001",
    "generate": "nuxt-ts generate",
    "precommit": "npm run lint",
    "start": "nuxt-ts start --port 3001"
  ,

我将普通的 dev:"nuxt-ts" 选项更改为使用跨环境并设置最大 HTTP 标头。

希望这可以帮助其他人。

【讨论】:

以上是关于如何使用 webpack-dev-server 设置 --max-http-header-size的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 webpack-dev-server 设置 --max-http-header-size

如何同时观看运行 Jest 测试的 webpack-dev-server?

如何使用 webpack-dev-server 和 html-webpack-plugin 观看 index.html

Webpack-dev-server 如何删除 React 应用程序的默认路由?

如何保存 webpack-dev-server 更改?

如何使用“ng e2e”对节点服务器而不是 webpack-dev-server 运行量角器测试