Babel 7 with Node

时间:2018-10-20 10:39:06

标签: javascript node.js babel

我正尝试将使用Node.js服务器(带有websocket等)的Vue.js项目从使用Babel 6升级到Babel7。我已经下载了以下NPM软件包:

- @babel/node
- @babel/preset-env
- @babel/core
- @babel/cli

这是我当前的npm script./node_modules/.bin/nodemon --exec babel-node server.js --presets @babel/preset-env

但是。当我运行它时,我得到:

➜  ~/vueproj/game git:(feat/items-overhaul) ✗ ./node_modules/.bin/nodemon --exec babel-node server.js --presets @babel/preset-env
[nodemon] 1.18.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `babel-node server.js --presets @babel/preset-env`
/Users/dan/vueproj/game/node_modules/@babel/runtime/helpers/builtin/es6/interopRequireDefault.js:1
(function (exports, require, module, __filename, __dirname) { export default function _interopRequireDefault(obj) {
                                                              ^^^^^^

SyntaxError: Unexpected token export

我找不到如何使用CLI的方法,因为该文档不好用。

1 个答案:

答案 0 :(得分:1)

您需要安装并运行@babel/node

npm install --save-dev @babel/node

babel-node运行babel babel-preset-env之类的预设/插件),而@babel/node将调用诸如@babel/preset-env之类的babel 7预设/插件。 / p>

然后:

./node_modules/.bin/nodemon --exec ./node_modules/.bin/babel-node server.js

确保您有一个.babelrc来调用babel 7插件/预设:

// .babelrc
{
  "presets": ["@babel/preset-env"]
}

如果您运行npx nodemon --help,则不会提及--presets选项:

  --config file ............ alternate nodemon.json config file to use
  -e, --ext ................ extensions to look for, ie. js,jade,hbs.
  -x, --exec app ........... execute script with "app", ie. -x "python -v".
  -w, --watch path.......... watch directory "path" or files. use once for
                             each directory or file to watch.
  -i, --ignore ............. ignore specific files or directories.
  -V, --verbose ............ show detail on what is causing restarts.
  -- <your args> ........... to tell nodemon stop slurping arguments.