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

时间:2016-07-10 17:11:31

标签: node.js babeljs babel-cli

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是否知道这是否有效,如果不应该 - 有些解决方法吗?

4 个答案:

答案 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做到了。