2

我刚刚开始将 Polymer 集成到我的 Jekyll 环境中。本质上,我在我的 Jekyll 根目录中创建了一个 bower.json 文件,它需要以下依赖项:

...
],
 "dependencies": {
"iron-elements": "PolymerElements/iron-elements#^1.0.0",
"paper-elements": "PolymerElements/paper-elements#^1.0.1",
"polymer": "Polymer/polymer#^1.2.0"
  }
}

在我的 Jekyll 根目录中运行后bower install,我找到了 bower_components 文件夹,其中包含我请求的所有 Polymer 包。在我的 Jekyll 模板中head.html,我包括

<link rel="import" href="{{ site.baseurl }}/bower_components/paper-item/paper-item.html">
<link rel="import" href="{{ site.baseurl }}/bower_components/paper-tabs/paper-tabs.html">
<link rel="import" href="{{ site.baseurl }}/bower_components/paper-toolbar/paper-toolbar.html">
<link rel="import" href="{{ site.baseurl }}/bower_components/iron-icons/iron-icons.html">
<link rel="import" href="{{ site.baseurl }}/bower_components/paper-icon-button/paper-icon-button.html">
<link rel="import" href="{{ site.baseurl }}/bower_components/iron-flex-layout/iron-flex-layout.html">
 ...

为了集成所需的聚合物包。我跑去jekyll serve创建并查看页面。到目前为止,一切都很好。

但是,我觉得这可能会导致我的页面加载时间很长,不是吗?我几乎可以肯定 Google 自己的网站速度测试会要求我减少 http 调用的数量。正如我所发现的,Polymer 提供了一个名为vulcanize将 http 请求合并为一个的包:https ://github.com/polymer/vulcanize

老实说,我不清楚如何将其整合到我的流程中。我看过一些谈论的文档,grunt但老实说,我对此一无所知。

任何人都可以提供关于如何压缩我的 Polymer 特色 Jekyll 页面(html、html 调用、css ...)的小输入吗?谢谢!

4

1 回答 1

0

我遇到了同样的问题,最后找到了一个解决方案,以防你还在解决这个问题。(原贴在这里

我使用 Gulp,复制Polymer Starter Kit (1.2.3)。我使用了package.json,tasks/目录,并修改gulpfile.js.了我改变了defaultserve任务的行为来运行 Jekyll serve 并在 shell 中构建。我还更改了 gulpfile 中的目录引用以硫化文件app/_site/而不是app/.

var spawn = require('child_process').spawn;
var argv = require('yargs').argv;

gulp.task('jekyllbuild', function(done) {
  return spawn('bundle', ['exec', 'jekyll', 'build'], { stdio: 'inherit' })
      .on('close', done);
});

// Build production files, the default task
gulp.task('default', ['clean'], function(cb) {
  // Uncomment 'cache-config' if you are going to use service workers.
  runSequence(
    'jekyllbuild',
    ['ensureFiles', 'copy', 'styles'],
    'elements',
    ['images', 'fonts', 'html'],
    'vulcanize', // 'cache-config',
    cb);
});

gulp.task('serve', function(done) {
  if (argv.port) {
    return spawn('bundle', ['exec', 'jekyll', 'serve', '--port=' + argv.port], { stdio: 'inherit' })
        .on('close', done);
  } else {
    return spawn('bundle', ['exec', 'jekyll', 'serve'], { stdio: 'inherit' })
        .on('close', done);
  }
});

使用 BrowserSync 会产生更清洁的效果,但这是获得 Jekyll 功能和生产硫化好处的简单方法。(请注意,您还必须安装yargs软件包来处理端口规范。)我的整个 gulpfile 都在这里

于 2016-02-23T13:52:19.980 回答