gpt4 book ai didi

node.js - 使用 babel 和 Jest 在 ES2017 中导入意外 token

转载 作者:搜寻专家 更新时间:2023-11-01 00:16:35 25 4
gpt4 key购买 nike

我尝试使用 Jest根据 Jest 入门页面和 Bablejs config for ES2017,在我的项目中使用 bablejs 和 ES2017这是我的 .babelrc 文件:

{
"presets": ["es2017"],
"env": {
"test": {
"presets": ["es2017"]
}
}
}

我的 package.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"
}
}

当我输入 npm test 来用 jest 运行我的所有测试时,我得到了这些错误:

 ){import StateList from './StateList';

^^^^^^
SyntaxError: Unexpected token import

这意味着它不知道import

最佳答案

babel-preset-es2017 不会转换 import 语句,因为它只包含插件:syntax-trailing-function-commastransform-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!

Migration guide from es2015 to env所示,它是一种直接替代品。

npm install --save-dev babel-preset-env

并将您的 .babelrc 更改为:

{
"presets": ["env"]
}

不要混淆 babel-preset-envBabel's env option ,我已从您当前的配置中删除了它,因为您对 test 环境使用的预设与任何其他环境完全相同,因此它没有任何效果。

你可以配置 babel-preset-env 只转换目标平台不支持的特性,例如 { "targets": { "node": "current"} 只会转换您正在运行的 Node 版本不支持的功能。如果没有指定目标,它将改变一切。有关详细信息,请参阅 Env preset documentation .

注意:随着即将发布的 Babel 版本 7,官方包将在命名空间 @babel 下发布,这意味着 babel-preset-env将是 @babel/preset-env .

关于node.js - 使用 babel 和 Jest 在 ES2017 中导入意外 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47029332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com