firebase deploy
给我这个错误消息:
async function asyncFunction() {
^^^^^^^^
SyntaxError: Unexpected token function
这是我的代码:
async function asyncFunction() {
await getText2Speech(word, 'mp3', 'es-ES_EnriqueVoice')
}
asyncFunction();
getText2Speech
是75行函数,当我在没有async
或await
的情况下调用它时,它可以完美运行。
我的functions/package.json
中有Node.js 8运行时:
"engines": {
"node": "8"
},
我的计算机上的节点是最新的:
node -v
v11.2.0
意外令牌是function
,而不是async
,这很奇怪。似乎firebase deploy
可以识别async
,但是语法错误? es-lint
找不到我的代码有什么问题。
可能是这个问题吗?
npm list --depth 0 -g
├── UNMET PEER DEPENDENCY firebase-admin@6.2.0
npm ERR! peer dep missing: firebase-admin@~6.0.0, required by firebase-functions@2.1.0
如果我回滚到firebase-admin@~6.0.0
,async await
会起作用吗?
答案 0 :(得分:1)
问题是某些内容指向了不支持ES2017的eslint v4.5.0。我安装了eslint v5.9.0,但是eslint -v
始终返回v4.5.0。我用find . -name 'eslint'
删除了eslint的每个副本,其中有很多版本,以及我的所有其他计算机。 npm uninstall -g eslint
不会获得eslint的每个副本。当eslint -v
不返回任何内容时,则firebase deploy
起作用。
答案 1 :(得分:1)
async/await
正在部署在我的另一台计算机上,但是今天它停止了部署。我检查了两台计算机上package.json
文件夹中的functions
,但都丢失了
"engines": {
"node": "8"
},
添加这一行,两台计算机现在都部署async/await
。我不知道该对象是如何从package.json
文件中删除的,我也不知道此修复程序是否将继续有效,但是我会全力以赴!