Dialogflow内联编辑器async函数报错问题求助
解决Dialogflow Fulfillment内联编辑器async函数报错问题
针对你遇到的'async functions' is only available in ES8 (use 'esversion:8')报错,即便添加了jshint配置仍未解决的情况,以下是几个关键排查和修正点:
1. 修正package.json中jshintConfig的位置
你当前把jshintConfig放在了engines字段内部,这是错误的配置位置——jshint配置应该作为package.json的根级独立字段存在。
修正后的package.json片段:
{ "name": "dialogflowFirebaseFulfillment", "description": "This is the default fulfillment for a Dialogflow agents using Cloud Functions for Firebase", "version": "0.0.1", "private": true, "license": "Apache Version 2.0", "author": "Google Inc.", "engines": { "node": "10" }, "jshintConfig": { "esversion": 8, "strict": "implied", "devel": true, "node": true, "globals": {} }, "scripts": { "start": "firebase serve --only functions:dialogflowFirebaseFulfillment", "deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment" }, "dependencies": { "actions-on-google": "^2.2.0", "firebase-admin": "^5.13.1", "firebase-functions": "^2.0.2", "dialogflow": "^0.6.0", "dialogflow-fulfillment": "^0.5.0", "@google-cloud/bigquery": "^0.12.0" } }
2. 确保jshint指令在代码最开头
将jshint的配置注释放在JavaScript文件的最顶部,甚至在'use strict'之前,确保jshint能优先读取配置规则:
/* jshint esversion: 8 */ 'use strict'; function main() { const {BigQuery} = require('@google-cloud/bigquery'); async function query () { const bigqueryClient = new BigQuery(); // 修正SQL语句的反引号转义问题 const sqlQuery = `SELECT * FROM \`sample.dataset\` LIMIT 1000;`; const options = { query: sqlQuery, location: 'US', params: {serialnumber: 'test', min_word_count: 250}, useQueryCache: false, }; } }
3. 修复代码中的语法错误
你的SQL语句存在语法错误:模板字符串内部的表名使用了未转义的反引号,会导致代码解析失败,进而干扰jshint的规则检查。需要将内部的反引号转义为```(如上代码所示)。
4. 清除内联编辑器缓存并重新部署
Dialogflow内联编辑器有时会缓存旧的配置或代码,执行以下操作确保配置生效:
- 刷新浏览器页面
- 点击编辑器顶部的“Deploy”按钮重新部署 fulfillment 函数
内容的提问来源于stack exchange,提问作者Min Max
相关产品推荐
相关产品推荐

