我有一个Polymer站点的自定义构建过程(Polybuild一直为每个人打破它)。它将入口点带入我的应用程序并通过Worker
和缩小器运行它们。输出是一个平坦的html文件,其中大部分缩小。 CSS没有缩小,因为minifier打破了新的语法。
输出HTML在Chrome中正常运行,但在Firefox中不起作用。该站点未加载,并在控制台中记录以下内容:
vulcanize
你能告诉我为什么构建的版本不能在一个浏览器中工作但在另一个浏览器中工作,为什么Firefox会失败?我在Chrome中没有收到这些错误。
我的构建过程如下:
build.sh
TypeError: document.registerElement is not a function
localhost:3000:1:4877
TypeError: Polymer.Base._getExtendedPrototype is not a function
localhost:3000:1:1090
TypeError: this._desugarBehaviors is not a function
localhost:3000:1:2359
<snip repeated desugarBehaviors error>
缩小-html.js
#!/bin/bash
build_html ( ) {
./node_modules/.bin/vulcanize --inline-css --inline-scripts $1.html > build/$1.pre.html
./minify-html.js build/$1.pre.html build/$1.html
}
echo 1. clean build dir
rm -r ./build
mkdir build
echo 2. copy assets in background
cp -r assets/ build/ &
echo 3. vulcanize and minify entry points
build_html index
build_html register
rm build/*.pre.html
echo 4. copy polyfills
mkdir -p ./build/bower_components/{classlist,webcomponentsjs}
cp ./bower_components/classlist/classList.min.js ./build/bower_components/classlist
cp ./bower_components/webcomponentsjs/webcomponents-lite.min.js ./build/bower_components/webcomponentsjs
cp ./bower_components/webcomponentsjs/webcomponents.min.js ./build/bower_components/webcomponentsjs
答案 0 :(得分:1)
您很可能错过了webcomponents库,这可能会在某些浏览器上填充registerElement。确保您在任何需要的地方导入它。