【问题标题】:Babel 6 presets not working with Firebase functions?Babel 6 预设不适用于 Firebase 功能?
【发布时间】:2017-11-07 19:41:22
【问题描述】:

我正在尝试在我的 firebase 函数中使用扩展运算符,但它不起作用。

包.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "dependencies": {
    "axios": "^0.16.2",
    "babel-cli": "^6.26.0",
    "babel-preset-env": "^1.6.1",
    "case": "^1.5.3",
    "change-case": "^3.0.1",
    "cheerio": "^1.0.0-rc.2",
    "emailjs": "^1.0.12",
    "firebase-admin": "~5.2.1",
    "firebase-functions": "^0.7.2",
    "lodash": "^4.17.4",
    "moment": "^2.18.1"
  },
  "babel": {
    "presets": [
      "env"
    ]
  },
  "private": true
}

featured.js:

"use strict";
const moment = require("moment");

const genDateWithStatus = (startDate, endDate) => ({
  startDate: moment(startDate).valueOf(),
  endDate: moment(endDate).valueOf(),
  status: moment(startDate).valueOf() > moment().valueOf()
    ? "upcoming"
    : moment(endDate).valueOf() > moment().valueOf() ? "active" : "recent"
});

module.exports = [
  {
    url: "https://blah.io/",
    ...genDateWithStatus("11/06/2017", "12/06/2017") // <---------- this part fails
  },
];

这是我尝试启动服务器时出现的错误

/Users/edmundmai/Documents/src/myapp/functions/src/config/featured.js:19
    ...genDateWithStatus("11/06/2017", "12/06/2017")
    ^^^

SyntaxError: Unexpected token ...
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:533:28)

【问题讨论】:

  • 请告诉我们您的.babelrc。
  • 我的 package.json 文件中有配置,我粘贴在上面。 Babel 的文档说是一样的babeljs.io/docs/usage/babelrc
  • 哦,真的,对不起。仅仅包括env 预设是不够的。您需要明确指定目标平台版本:babeljs.io/docs/plugins/preset-env。 Node 8 和浏览器目前都不支持对象扩展运算符。
  • 我应该输入什么值而不是 env?
  • “env”插件的问题是你似乎无法让它支持对象扩展运算符。我添加了两个可能的解决方案的正确答案,所以请随意使用其中任何一个。

标签: javascript babeljs


【解决方案1】:

Node 和浏览器目前(2017 年 11 月)不支持对象扩展运算符,因此您可以使用 Object.assign 语法

module.exports = [
  Object.assign({}, { url: "https://blah.io/" }, genDateWithStatus("11/06/2017", "12/06/2017")),
];

或显式添加babel-plugin-transform-object-rest-spread 转换插件。

关于后者,另见 Github 问题:https://github.com/babel/babel-preset-env/issues/49。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 2018-04-12
    • 2020-06-17
    • 2021-01-11
    • 2019-07-30
    相关资源
    最近更新 更多