我正在尝试通过聚合物cli捆绑我的聚合物应用程序。我的应用程序为一个简单的页面提取高达275kb的数据。
在我的polymer.json文件中,我使用src / my-app.html作为shell将所有自定义聚合物元素分段。问题是,在构建我的应用程序后,我的src / my-app.html在捆绑文件夹中的大小为273kb。这是一个很大的规模,考虑到我将Angular和React放在一边以减少捆绑(供应商捆绑)大小和更多分块文件来实现延迟加载。我希望聚合物可以给我单独的供应商包,但我无法实现。
我试着用Polymer.json - "bower_components/polymer/polymer.html"
的片段数组写这个。我在sourceGlobs数组中写了"bower_components/**/*"
。我试着再次建造。我希望我能在我的构建中获得一个单独的polymer.html文件。但是我在终端中遇到了几个错误,我的src / my-app.html仍然是273kb。
终端中显示的错误是:
warn: Unable to optimize .js file /home/local/JASPERINDIA/vineet.dev/projects/polymer-starter-vin/bower_components/marked-element/demo/index.html_script_0.js
{ err:
{ message: 'SyntaxError: Unexpected character \'#\'',
filename: 0,
line: 2,
col: 10,
pos: 11,
stack: 'Error\n at new JS_Parse_Error (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:1547:18)\n at js_error (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:1555:11)\n at parse_error (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:1679:9)\n at Object.next_token [as input] (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:1951:9)\n at next (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:2080:25)\n at Object.parse (eval at <anonymous> (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:1:1), <anonymous>:2066:15)\n at addFile (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:72:33)\n at /usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:81:17\n at Array.forEach (native)\n at Object.exports.minify (/usr/local/lib/node_modules/polymer-cli/node_modules/uglify-js/tools/node.js:79:26)' } }
有几个与上述相同的错误。
我知道我可以gzip,但那不会是令人满意的解决方案。
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
我没有一个特定的答案来解决你对shell文件大小的担忧,但我确实有一些指示。
polymer-build
最近更新了to use a new and improved bundler,其中包括为共享依赖项创建单独的捆绑包(包括Polymer Starter Kit中my-app.html
中捆绑的捆绑包)。可能值得尝试即将推出的具有这种新捆绑器的Polymer CLI版本。
您不应将polymer.html
指定为片段。片段适用于延迟加载的视图。例如,在Polymer Starter Kit中,my-view1.html
,my-view2.html
,my-view3.html
等延迟加载importHref
。这些文件未在HTML导入中明确显示,因此必须在fragments
的{{1}}下列出。
您不应在polymer.json
(或bower_components/**/*
)下列出sourceGlobs
。这告诉sources
将整个polymer-build
目录(包括bower_components
(运行时不必要))复制到构建输出。
您注意到的警告是良性的Uglify错误(GitHub issue)。构建仍然成功完成,但受Uglify错误影响的文件将没有缩小的JavaScript。