Babel CLI文档(https://babeljs.io/docs/usage/cli/):
babel-node [options] [ -e script | script.js ] [arguments]
但是当尝试为Node增加分配的内存时:
babel-node --max-old-space-size=16384 script.js
参数--max-old-space-size=16384
似乎被忽略了
sb是否知道这是否有效,如果不应该 - 有些解决方法吗?
答案 0 :(得分:3)
修改(Juli 2016)从版本6.11.4开始,现在支持所有版本。问题中发布的示例现在有效。
版本6.11.3中的Babel还不支持v8Flags的所有变体。
节点本身支持使用下划线(--max_old_space_size
)或破折号(--max-old-space-size
)传递此标志。
相比之下,如果用下划线指定并且不支持格式 --flag=value
,则babel-node仅支持这些标志。
有open pull request,解决了这个问题。遗憾的是,目前没有为v8Flags指定值的解决方法。
答案 1 :(得分:1)
我正在使用Babel 7,实际上确实可以。
babel-node --max-old-space-size=16384 script.js
一种简单的测试方法是将大小减小到100KB,这样很快就会耗尽内存。
答案 2 :(得分:0)
有一个错误可能与节点v10有关... v8flags v2运行不正常,您需要使用当前的v8flags 3.1.1。
我正在使用yarn作为全局节点工具,这是快速命令以进行快速修补(可能在每个yarl global add
上重做)...
如果使用babel-cli 6 毛线全局添加v8flags rm -rf〜/ .config / yarn / global / node_modules / babel-cli / node_modules / v8flags
您可以使用babel 7,但是babel配置中有很多更改要做 毛线全局添加@ babel / core @ babel / node
答案 3 :(得分:0)
您还可以使用环境变量来绕过babel-node
,而它们必须一起支持该标志。
NODE_OPTIONS=--max-old-space-size=16384 babel-node [options] [ -e script | script.js ] [arguments]
在我的情况下,我需要使用--tls-min-v1.0
,但babel-node不知道该标志。
NODE_OPTIONS=--tls-min-v1.0
做到了。