我创建了一个app scaffold:
polymer init
使用看起来像
的polymer.json文件{
"entrypoint": "index.html",
"shell": "src/my-app.html"
}
然后:
firebase init
使用firebase.json,它看起来像:
{
"database": {
"rules": "database.rules.json"
},
"hosting": {
"public": "build/bundled",
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
如果我在polymer build
生成的初始应用结构上运行polymer init
,然后使用firebase deploy
推送到托管,我在尝试打开网站时会遇到这些错误(在JS控制台中)在Firebase托管上:
webcomponents-lite.js:1 Uncaught SyntaxError: Unexpected token <
webcomponents-lite.js:1 Uncaught SyntaxError: Unexpected token <
my-app.html:13 Uncaught ReferenceError: Polymer is not defined
供参考,这里是index.html
:
<!doctype html>
<html>
<head>
<title>Snappy Title</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="manifest" href="/manifest.json">
<script src="/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
<link rel="import" href="/src/my-app/my-app.html">
</head>
<body>
<my-app></my-app>
</body>
</html>
和my-app.html
:
<link rel="import" href="../../bower_components/polymer/polymer.html">
<dom-module id="my-app">
<template>
<style>
:host {
display: block;
}
</style>
<h2>Hello [[prop1]]</h2>
</template>
<script>
Polymer({
is: 'my-app',
properties: {
prop1: {
type: String,
value: 'my-app',
},
},
});
</script>
</dom-module>
这两个文件都是通过polymer init
注意:即使我通过Firebase Hosting提供非构建代码,错误也会保持不变。
答案 0 :(得分:3)
问题来自webcomponentsjs
polyfill的可能性更高。检查以确保可以从build
目录中找到polymer.json
polyfill。如果您使用的是polymer-cli
,则必须丢失,否则您忘记将其添加到{{1}}内。