MBe*_*mam 2 node.js jestjs babeljs es2017
我尝试在我的项目中使用Jest和bablejs以及ES2017,根据Jest Getting Started页面以及ES2017的Bablejs配置这是我的.babelrc
文件:
{
"presets": ["es2017"],
"env": {
"test": {
"presets": ["es2017"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的包装json是:
{
"name": "",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "jest"
},
"repository": {
"type": "git",
"url": ""
},
"author": "",
"license": "ISC",
"bugs": {
"url": ""
},
"homepage": "",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.0",
"babel-jest": "^21.2.0",
"babel-polyfill": "^6.26.0",
"babel-preset-es2017": "^6.24.1",
"jest": "^21.2.1"
}
}
Run Code Online (Sandbox Code Playgroud)
并且知道当我键入npm test
以使用jest运行我的所有测试时我得到以下错误:
){import StateList from './StateList';
^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
它意味着它不知道import
,我搜索SF但没有任何解决方案解决我的问题
babel-preset-es2017
不转换import
语句,因为它只包含插件:syntax-trailing-function-commas
和
transform-async-to-generator
.
在安装时,babel-preset-es2017
您还会收到一条警告,表示它已被弃用babel-preset-env
,其中包含es201x
预设所包含的所有内容以及更多内容.
warning babel-preset-es2017@6.24.1: Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update!
Run Code Online (Sandbox Code Playgroud)
如从es2015到env的迁移指南中所示,它是替代品.
npm install --save-dev babel-preset-env
Run Code Online (Sandbox Code Playgroud)
并将你.babelrc
改为:
{
"presets": ["env"]
}
Run Code Online (Sandbox Code Playgroud)
不要babel-preset-env
与我从当前配置中删除的Babel env
选项混淆,因为您使用的test
环境预设与其他环境完全相同,因此它没有任何效果.
您可以配置babel-preset-env
为仅转换您所定位的平台不支持的功能,例如,{ "targets": { "node": "current" } }
仅转换您正在运行的Node版本不支持的功能.如果没有指定目标,它将转换所有内容.有关详细信息,请参阅Env预设文档.
注意:随着即将推出的Babel版本7,官方软件包将在命名空间下发布@babel
,这意味着babel-preset-env
将会发布@babel/preset-env
.
归档时间: |
|
查看次数: |
3442 次 |
最近记录: |