Включить оператор распространения с помощью babel / preset-env в приложении узла - PullRequest
0 голосов
/ 09 июля 2020

Я использую версию узла 14

Вот мой пакет. json файл:

{
    "scripts": {
        "start": "nodemon --exec babel-node ./src/app.js",
        "build": "babel ./src -s -d dist",
    },
    "devDependencies": {
        "@babel/core": "^7.10.3",
        "@babel/node": "^7.10.3",
        "@babel/preset-env": "^7.10.3",
        "nodemon": "^2.0.4"
    }
}

а вот babel.config. json file:

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

Теперь я предполагаю, что "@babel/preset-env" позволяет нам использовать последнюю JavaScript. При запуске npm start все работает нормально. Но если я run npm run build получил следующую ошибку:

SyntaxError: src/api/review/controller.js: Unexpected token (8:25)
   6 | 
   7 | module.exports.create = asyncHandler(async (req, res, next) => {
>  8 |     const reviewData = { ...req.body, user: req.user._id };
     |                          ^
   9 |     const review = await Review.create(reviewData);
  10 |     response.build(res, review, 201);
  11 | });

Я добавил новый плагин, чтобы он работал "@babel/plugin-proposal-object-rest-spread": "^7.10.4"

и вот babel.config. json файл:

{
    "presets": ["@babel/preset-env"],
    "plugins": ["@babel/plugin-proposal-object-rest-spread"]
}

Но у меня не получилось

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Проблема решена добавлением следующего пакета: "@babel/cli": "^7.10.4"

0 голосов
/ 09 июля 2020

Установите

npm install --save-dev @babel/plugin-proposal-object-rest-spread

, затем измените свой .babelr c файл:

{
  "presets": ["@babel/preset-env"],
  "plugins": ["@babel/plugin-proposal-object-rest-spread"]
}
...