diff --git a/packages/babel-preset-flow/src/index.ts b/packages/babel-preset-flow/src/index.ts index 75640164947c..c20ac238c349 100644 --- a/packages/babel-preset-flow/src/index.ts +++ b/packages/babel-preset-flow/src/index.ts @@ -20,6 +20,16 @@ export default declarePreset((api, opts) => { ]; if (useHermesParser) { + if (Number.parseInt(process.versions.node, 10) < 12) { + throw new Error( + "The Hermes parser is only supported in Node 12 and later.", + ); + } + if (IS_STANDALONE) { + throw new Error( + "The Hermes parser is not supported in the @babel/standalone.", + ); + } plugins.unshift("babel-plugin-syntax-hermes-parser"); } diff --git a/packages/babel-preset-flow/test/fixtures/flow-parser/hermes/options.json b/packages/babel-preset-flow/test/fixtures/flow-parser/hermes/options.json index 653f26fbd35a..282eb4f62f4b 100644 --- a/packages/babel-preset-flow/test/fixtures/flow-parser/hermes/options.json +++ b/packages/babel-preset-flow/test/fixtures/flow-parser/hermes/options.json @@ -1,3 +1,4 @@ { - "presets": [["flow", { "useHermesParser": true }]] + "presets": [["flow", { "useHermesParser": true }]], + "minNodeVersion": "12.0.0" }