nodemon使用异步/等待语法时抛出错误:
**/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js:17
export default function _asyncToGenerator(fn) {
^^^^^^
SyntaxError: Unexpected token export
但是它可以与导入/导出语法一起很好地工作。
package.json
{
"scripts": {
"dev": "nodemon --exec babel-node server/index.js",
}
"dependencies": {
"@babel/polyfill": "^7.2.5",
},
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.2",
"@babel/node": "^7.2.2",
"@babel/preset-env": "^7.2.3",
}
}
.babelrc
{
"presets": [
"@babel/preset-env"
]
}
asyncToGenerator.js
function asyncGeneratorStep(...) { ... }
export default function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
但是我认为可能是因为我的通天塔设置而出错了。
顺便说一句,当我使用typeof时,它会抛出相同的错误
**/node_modules/@babel/runtime/helpers/esm/typeof.js:3
export default function _typeof(obj) {
^^^^^^
SyntaxError: Unexpected token export
答案 0 :(得分:0)
回答your comment:
nodemon不了解babelrc(也不应该)。而且babel(AFAIK)不允许您选择要使用的babelrc文件。 我认为您应该在运行babel-node时合并babelrc文件并设置env标志。像这样:babeljs.io/docs/en/6.26.3/babelrc#env-option
另一种选择是制作一个脚本,该脚本在每次重新加载应用程序时重命名babelrc文件,或者类似的内容(我不明白为什么需要2个.babelrc文件)
答案 1 :(得分:0)
在一个不再可见的答案(可能是主持人删除)中,我读到项目中有更多.babelrc
个文件。
在babel docs中,看来.babelrc
必须位于子软件包的同一目录中。我建议您阅读该文档,也许您会找到更适合您要求的解决方案。
很抱歉,您的回答含糊不清,但是由于您的问题中缺少详细信息(server/index.js
文件内容,目录结构等),我无法做得更好。