0

编辑:解决方案是从 type=module 中删除package.json

我正在尝试使用babel-node,但无法从.babelrc. 奇怪的是babelcli工作得很好。

这有效:

$ npx babel src/build-html.js

这失败了:

$ npx babel-node src/build-html.js
SyntaxError: Unexpected token '<'

这也有效:

$ npx babel src/build-html.js | node

.babelrc.yml

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

包.json

{
  "type": "module",
  "scripts": {
    "build:html": "babel-node src/build-html.js",
  },
  "dependencies": {
    "react": "^16.13.1",
    "react-dom": "^16.13.1"
  },
  "devDependencies": {
    "@babel/cli": "^7.10.3",
    "@babel/core": "^7.10.3",
    "@babel/node": "^7.10.3",
    "@babel/preset-env": "^7.10.3",
    "@babel/preset-react": "^7.10.1"
  }
}

src/build-html.js

import React from 'react'
import ReactDOMServer from 'react-dom/server'

const HelloWorld = () => <div>Hello World</div>

const output = ReactDOMServer.renderToStaticMarkup(<HelloWorld />)

console.log(output)

我放了一个仓库来帮助调试https://github.com/joelnet/mojo-gallery

签出stack-overflow此问题的标签

4

1 回答 1

0

尝试重命名 .babelrc.yml =>mv .babelrc.yml babel.config.json然后npx babel-node src/build-html.js再次运行

于 2020-06-25T03:26:08.667 回答