在单独的供应商html中捆绑bower组件,而不是在polymer.json中定义的shell

时间:2017-02-13 08:13:25

标签: polymer polymer-cli

我正在尝试通过聚合物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,但那不会是令人满意的解决方案。

任何帮助将不胜感激。感谢

1 个答案:

答案 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.htmlmy-view2.htmlmy-view3.html等延迟加载importHref。这些文件未在HTML导入中明确显示,因此必须在fragments的{​​{1}}下列出。

  • 您不应在polymer.json(或bower_components/**/*)下列出sourceGlobs。这告诉sources将整个polymer-build目录(包括bower_components(运行时不必要))复制到构建输出。

  • 您注意到的警告是良性的Uglify错误(GitHub issue)。构建仍然成功完成,但受Uglify错误影响的文件将没有缩小的JavaScript。