我正在尝试使用firebase-hosting托管一个网站,但收到错误:Uncaught SyntaxError: Unexpected identifier
它发生在script.js:1中。源代码如下所示:
import axios from 'axios';
callWs();
console.log('This worked now!');
async function callWs() {
try {
const res = await axios(
`https://us-central1-jpabiggmbh-001.cloudfunctions.net/realexData?amt=${500}&curr=${'CHF'}`
);
console.log('This function ran just now!');
} catch (e) {
console.log(e);
}
console.log(res);
}我的文件夹结构如下所示(关注公共树):

我正在调用index.html中的脚本
<head>
<title>Fantastic title</title>
<script src="script.js"></script>
</head>我的firebase-functions导入工作正常,但我有一个package.json文件,我想这是我遇到麻烦的原因之一?
我的firebase.json文件如下所示:
{
"database": {
"rules": "database.rules.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint"
],
"source": "functions"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}发布于 2018-05-16 05:45:13
错误来自包含以下代码的1行:
import axios from 'axios';这是一条ES Module import语句。浏览器中的本机模块支持仍然是非常新的。火狐刚刚开始发布这款May 9, 2018。你需要确保你使用的浏览器是supports modules的。
当你加载一个模块脚本时,你需要tell the browser。
<script type="module" src="script.js"></script>另一个问题是from value 'axios'。浏览器不知道npm包和包名,所以你必须指定一个位置。
import * as axios from '/node_modules/axios/dist/axios.min.js';或
import * as axios from 'https://unpkg.com/axios@0.18.0/dist/axios.min.js';来自packageName的import是一种简写工具,用于引用本地安装的依赖项。
因为您在脚本中运行import,所以它被认为是一个dynamic import。动态导入目前只在Chrome中提供,并且具有不同的语法。
import('https://unpkg.com/axios@0.18.0/dist/axios.min.js')
.then(axios => {
axios.get(...);
});https://stackoverflow.com/questions/50349224
复制相似问题