因为 await (... of ...) 不工作。 Babel 预设环境,节点 v10
for await (... of ...) not working. Babel present env, node v10
自从我从头开始一个 nodejs 项目以来已经有一段时间了,所以设置和配置 eslint、babel 等有点头疼
现在我的 babelrc 是:
{
"presets": [
[
"env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"transform-runtime",
{
"regenerator": true
}
]
]
}
package.json
具有开发依赖性:
"babel-cli": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
现在我想遍历一个对象列表。对于每个,我都需要执行一些我需要 await
的异步任务,所以我做了:
for await (const thing of things) {
const foo = await doSomethingThatTakesAwhile(thing)
// etc
}
但是当我在 dev 中 运行 它时(通过 babel-node 的 nodemon)现在 await 出现语法错误:
for await (const thing of things) {
^
Syntax Error Unexpected token, expected (
at Parser.pp.raise (... \node_modules\babylon\lib\index.js:4454:13)
at Parser.pp.unexpected (... \node_modules\babylon\lib\index.js:1761:8)
at Parser.pp.expect (... \node_modules\babylon\lib\index.js:1749:33)
at Parser.pp.parseForStatement (... \node_modules\babylon\lib\index.js:2008:8)
etc..
我是否必须更改我的 babel 配置,and/or 我完全误解了 for/await 和 await/async ?
我相信你需要 babel-plugin-proposal-async-generator-functions 插件来使用 for await 语法。
我找到了另一个我知道 for await of
有效的项目...看起来我使用的是旧的 babel 插件,而不是新的,分离出来的 @babel/xxx
库。在反复安装和卸载东西之后:这是有效的 babelrc:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"regenerator": true
},
"@babel/preset-env"
]
]
}
此时我已经安装了所有:
- @babel/core
- @babel/node
- @babel/cli
- @babel/preset-env
- @babel/plugin-transform-runtime
然后我运行进入这个问题:https://github.com/meteor/meteor/issues/10128
所以还必须安装与 7.0.0-beta.55 挂钩的 @babel/runtime ... 现在可以构建了!
自从我从头开始一个 nodejs 项目以来已经有一段时间了,所以设置和配置 eslint、babel 等有点头疼
现在我的 babelrc 是:
{
"presets": [
[
"env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"transform-runtime",
{
"regenerator": true
}
]
]
}
package.json
具有开发依赖性:
"babel-cli": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
现在我想遍历一个对象列表。对于每个,我都需要执行一些我需要 await
的异步任务,所以我做了:
for await (const thing of things) {
const foo = await doSomethingThatTakesAwhile(thing)
// etc
}
但是当我在 dev 中 运行 它时(通过 babel-node 的 nodemon)现在 await 出现语法错误:
for await (const thing of things) {
^
Syntax Error Unexpected token, expected (
at Parser.pp.raise (... \node_modules\babylon\lib\index.js:4454:13)
at Parser.pp.unexpected (... \node_modules\babylon\lib\index.js:1761:8)
at Parser.pp.expect (... \node_modules\babylon\lib\index.js:1749:33)
at Parser.pp.parseForStatement (... \node_modules\babylon\lib\index.js:2008:8)
etc..
我是否必须更改我的 babel 配置,and/or 我完全误解了 for/await 和 await/async ?
我相信你需要 babel-plugin-proposal-async-generator-functions 插件来使用 for await 语法。
我找到了另一个我知道 for await of
有效的项目...看起来我使用的是旧的 babel 插件,而不是新的,分离出来的 @babel/xxx
库。在反复安装和卸载东西之后:这是有效的 babelrc:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"regenerator": true
},
"@babel/preset-env"
]
]
}
此时我已经安装了所有:
- @babel/core
- @babel/node
- @babel/cli
- @babel/preset-env
- @babel/plugin-transform-runtime
然后我运行进入这个问题:https://github.com/meteor/meteor/issues/10128 所以还必须安装与 7.0.0-beta.55 挂钩的 @babel/runtime ... 现在可以构建了!