使用 babel-node 时如何将选项传递给节点

Str*_*ajk 5 node.js babeljs babel-cli

Babel CLI 文档(https://babeljs.io/docs/usage/cli/):

babel-node [options] [ -e script | script.js ] [arguments]
Run Code Online (Sandbox Code Playgroud)

但是当尝试为 Node 增加分配的内存时:

babel-node --max-old-space-size=16384 script.js
Run Code Online (Sandbox Code Playgroud)

参数--max-old-space-size=16384似乎被忽略

某人是否知道这是否应该有效,如果不应该 - 一些解决方法?

Dan*_* T. 5

编辑:(2016 年 7 月)从 6.11.4 版开始,现在支持所有变体。问题中发布的示例现在有效。


6.11.3 版本中的 Babel 尚不支持 v8Flags 的所有变体。

Node 本身支持使用下划线 ( --max_old_space_size) 或破折号 ( --max-old-space-size)传递此标志。

相反,如果 babel-node 用下划线指定并且不支持格式,则 babel-node 仅支持这些标志--flag=value

有一个开放的 pull request可以解决这个问题。遗憾的是,目前没有使用值指定 v8Flags 的解决方法。


Cha*_*ira 5

我正在使用 Babel 7,这确实有效。

babel-node --max-old-space-size=16384 script.js
Run Code Online (Sandbox Code Playgroud)

简单的测试方法是将大小降低到 100KB,您将很快耗尽内存。