最近在使用Verdaccio时,发现一些问题,于是想在源码模式下debug代码。
于是就遇见了一个问题,在我要添加用户时,提示我请求头子节过大
431 Request Header Fields Too Large
# npm adduser --registry http://localhost:4874
Username: root
Password:
Email: (this IS public) root@example.com
npm ERR! code E431
npm ERR! 431 Request Header Fields Too Large - PUT http://localhost:4874/-/user/org.couchdb.user:root
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/nicholas/.npm/_logs/2020-03-16T08_20_52_977Z-debug.log
关于这个问题我知道在node模式添加一个参数--max-http-header-size 40000
即可解决,参见我之前写的《NodeJS请求431 Request Header Fields Too Large 错误》,但在Verdaccio的开发模式下并不是用node
命令启动的,在package.json
里我看到它是使用babel-node
命令启动的服务
"dev:start": "cross-env BABEL_ENV=registry babel-node --extensions \".ts,.tsx\" src/lib/cli",
幸好babel-node提供了一个在NODE_OPTIONS
用于在运行Babel Node时设置Node选项,如NODE_OPTIONS='--max-http-header-size=40000'
,具体用法如下
"dev:start": "cross-env BABEL_ENV=registry NODE_OPTIONS='--max-http-header-size=40000' babel-node --extensions \".ts,.tsx\" src/lib/cli",
再次测试完美解决。