0

我正在尝试通过聚合物 cli 捆绑我的聚合物应用程序。我的应用程序为一个简单的页面提取了高达 275kb 的数据。

在我的 polymer.json 文件中,我已经使用 src/my-app.html 作为外壳分割了我所有的自定义聚合物元素。问题是在构建我的应用程序后,我的 src/my-app.html 在捆绑文件夹中的大小为 273kb。这是一个很大的尺寸,考虑到我放弃了 Angular 和 React 只是为了实现更少的包(供应商包)大小和更多的分块文件来延迟加载。我希望聚合物可以为我提供单独的供应商捆绑包,但我无法实现这一点。

我试图把它写在 polymer.json - 的片段数组中"bower_components/polymer/polymer.html"。我写"bower_components/**/*"在 sourceGlobs 数组中。我试图再次建造。我希望我能在我的构建中获得一个单独的 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,但这不是令人满意的解决方案。

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

4

1 回答 1

1

我没有具体的答案来解决您对 shell 文件大小的担忧,但我确实有一些建议。

  • polymer-build最近更新以使用新的和改进的 bundler,其中包括为共享依赖项创建单独的包(包括捆绑在my-app.htmlPolymer Starter Kit 中的包)。可能值得尝试具有此新捆绑程序的即将发布的 Polymer CLI 版本。

  • 您不应指定polymer.html为片段。片段适用于延迟加载的视图。例如,在 Polymer Starter Kit 中,my-view1.htmlmy-view2.htmlmy-view3.html等都是延迟加载的importHref。这些文件未明确在 HTML 导入中,因此它们必须列fragmentspolymer.json.

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

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

于 2017-02-13T17:29:17.293 回答