Javascript 使用Nodemon在Node.js V6.2.0上安装Babel V6.x ES7 Async/Await
伙计,这是一个痛苦的设置!我已按照此处的安装说明单击nodemon框: 根目录中的Javascript 使用Nodemon在Node.js V6.2.0上安装Babel V6.x ES7 Async/Await,javascript,node.js,babeljs,Javascript,Node.js,Babeljs,伙计,这是一个痛苦的设置!我已按照此处的安装说明单击nodemon框: 根目录中的.babelrc: { "presets": ["es2015"], "plugins": ["transform-async-to-generator"] } package.json(如图所示,我安装了更多babel工具): test.js: (async function () { // <-- error occues here const value = await 123;
.babelrc
:
{
"presets": ["es2015"],
"plugins": ["transform-async-to-generator"]
}
package.json
(如图所示,我安装了更多babel工具):
test.js
:
(async function () { // <-- error occues here
const value = await 123;
console.log(value);
})().then(() => {
console.log('Done');
});
我还尝试切换到节点v4.4.7,并将npm升级到3.10.6。仍然是相同的错误。异步/等待在babeljs中由插件
transform Async to generator
处理,该插件包含在stage-3
预设中。默认情况下,它不包括在es2015
预设中,因此您必须明确添加插件本身或stage-3
预设。要在命令行上执行此操作,请在package.json中更改此行:
"babel-node": "babel-node --presets=es2015 --ignore='foo|bar|baz'",
全文如下:
"babel-node": "babel-node --presets=es2015,stage-3 --ignore='foo|bar|baz'",
添加stage-3
预设。也可以这样实现:
"babel-node": "babel-node --presets=es2015 --plugins=transform-async-to-generator --ignore='foo|bar|baz'",
但是,通常建议使用.babelrc
配置文件,该文件可以简单到:
{
"presets": ["es2015", "stage-3"]
}
或
然后,package.json
中的行可以是:
"babel-node": "babel-node --ignore='foo|bar|baz'",
(评论上下文的原始答案)
您需要添加:
"plugins": ["transform-async-to-generator"]
对于您的.babelrc
,因为我不相信任何标准预设中都包含async/await(因为它可以以多种方式实现)1)删除所有babel模块(删除所有内容,这是我发现的一个小错误)
2) 安装以下组件:
npm install --save-dev babel-polyfill babel-preset-es2015 babel-preset-stage-3 babel-register
3) 修复.lrc文件:
{
"presets": [
"es2015",
"stage-3"
]
}
4) 检查它是否工作(-r
标志是预加载模块):
要修复nodemon,请执行以下操作:
nodemon -r babel-register -r babel-polyfill experiment/socketio/test.js
async/await
不是ES7的一部分,这是一个建议。@FelixKling确实是,但你明白我的意思:)请尽量避免在你的演讲中使用冒犯性的词语/短语questions@rossipedia我不觉得“弱智”这个词有冒犯性,这是一个解释性的问题。有更糟糕的话你应该更担心。老实说,我也不担心。但那是真的。非常确定async/await处于第1阶段或第2阶段。Ok添加了它,仍然不会影响任何东西:/就提案而言是的,但实现不是。解析语法可能包括在内,但转换本身不是。是的:(实际上是第三阶段)我修正了它!检查问题的底部以查看:)
"plugins": ["transform-async-to-generator"]
npm install --save-dev babel-polyfill babel-preset-es2015 babel-preset-stage-3 babel-register
{
"presets": [
"es2015",
"stage-3"
]
}
node -r babel-register -r babel-polyfill experiment/socketio/test.js
nodemon -r babel-register -r babel-polyfill experiment/socketio/test.js