【发布时间】:2016-04-06 05:11:40
【问题描述】:
我正在启动一个 React Native 项目,我想将 ECMAScript 2015 用于我的代码,并将 mocha 用于我的单元测试。我已经安装了babel-register、babel-preset-es2015 和babel-preset-stage-2,并将其添加到我项目的package.json 文件中:
"babel": {
"presets": ["es2015", "stage-2"]
}
但是当我运行 mocha --compilers js:babel-register 并尝试测试一个导入 React Native API 的模块时......
import React from 'react-native';
let {Dimensions} = React;
...我收到有关 React 使用的扩展运算符的错误:
node_modules/react-native/Libraries/react-native/react-native.js:107
...require('React'),
^^^
SyntaxError: Unexpected token ...
这是一个 babel 错误吗?stage-2 预设不应该添加对扩展运算符的支持吗?还是我错过了什么?
【问题讨论】:
-
我只是不明白你在这里使用传播运算符。你为什么在这里使用它?
-
我没有使用扩展运算符。 React Native 正在使用它,我正在我的一个模块中导入 React Native。
-
如果你查看 react-native (github.com/facebook/react-native/blob/master/package.json) 中的 package.json,你会看到它导入了大约 30 个与 babel 相关的包。如果不添加所有这些,您可能会继续遇到这些缺少包的问题。
-
这方面有什么进展吗?我使用一个简单的 webpack 脚本来编译和加载一个很小的打字稿文件时遇到了同样的错误。我的 loader 没有调用 babel:
{ test: /\.tsx?$/, exclude: /node_modules/, loader: 'ts' }
标签: javascript mocha.js ecmascript-6 react-native babeljs