我刚刚开始将Polymer集成到我的Jekyll环境中。 基本上,我在我的Jekyll根目录中创建了一个bower.json文件,该文件需要跟随depencendies:
...
],
"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">
...
为了集成所需的Polymer包。我运行jekyll serve
来创建并查看该页面。到目前为止一切都很好。
但是,我觉得这可能会导致我的页面加载时间过长,不是吗?
我,几乎可以肯定谷歌自己的网站速度测试会要求我减少http电话的数量。正如我发现的那样,Polymer提供了一个名为vulcanize
的包,用于将http请求合并为一个:https://github.com/polymer/vulcanize
老实说,我不知道如何将其整合到我的流程中。我已经看过一些谈论grunt
的文档,但老实说,我对此一无所知。
任何人都可以提供一些关于如何压缩我的聚合物特色Jekyll页面的小输入(html,html调用,css ...)?谢谢!
答案 0 :(得分:0)
我遇到了同样的问题并最终找到了解决方案,以防你还在努力解决这个问题。 (最初发布here)
我使用Gulp,复制Polymer Starter Kit(1.2.3)。我使用了package.json
,tasks/
目录,并修改了gulpfile.js.
我改变了default
和serve
任务的行为来运行Jekyll服务并在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是here。