如何在运行babel-node时带node参数

babel-node

最近在使用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",

再次测试完美解决。

分享

TITLE: 如何在运行babel-node时带node参数

LINK: https://www.qttc.net/512-babel-node-with-node-options.html

NOTE: 原创内容,转载请注明出自琼台博客