首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硫化: inlineCss没有在聚合物1.0项目上工作

硫化: inlineCss没有在聚合物1.0项目上工作
EN

Stack Overflow用户
提问于 2015-06-13 13:54:22
回答 3查看 1.4K关注 0票数 3

我有一个聚合物1.0项目,我想要硫化为生产。为了做到这一点,我在gulp-vulcanize中使用了Gulp。

我的gulpfile.js文件:

代码语言:javascript
复制
var gulp = require('gulp');
var Vulcanize = require('gulp-vulcanize');

gulp.task('vulcanize', function () {
    return gulp.src('./src/app.html')
        .pipe(Vulcanize({
            inlineCss: true
        }))
        .pipe(gulp.dest('./dist'));
});

src/app.html的内容如下:

代码语言:javascript
复制
<!-- Polymer elements -->
<link rel="import" href="../bower_components/google-map/google-map.html" />
<link rel="import" href="../bower_components/iron-icons/iron-icons.html" />
<link rel="import" href="../bower_components/paper-button/paper-button.html" />
<link rel="import" href="../bower_components/paper-drawer-panel/paper-drawer-panel.html" />
<link rel="import" href="../bower_components/paper-icon-button/paper-icon-button.html" />
<link rel="import" href="../bower_components/paper-item/paper-item.html" />
<link rel="import" href="../bower_components/paper-material/paper-material.html" />
<link rel="import" href="../bower_components/paper-menu/paper-menu.html" />
<link rel="import" href="../bower_components/paper-progress/paper-progress.html" />
<link rel="import" href="../bower_components/paper-scroll-header-panel/paper-scroll-header-panel.html" />
<link rel="import" href="../bower_components/paper-toast/paper-toast.html" />
<link rel="import" href="../bower_components/paper-toolbar/paper-toolbar.html" />

问题:进程没有完成,也没有产生错误。

运行gulp vulcanize时的CMD输出

代码语言:javascript
复制
C:\Stuff\myApp>gulp vulcanize
[15:45:06] Using gulpfile C:\Stuff\myApp\gulpfile.js
[15:45:06] Starting 'vulcanize'...

C:\Stuff\myApp>

但是,当我将inlineCss设置为false时,进程就会运行。这种情况下的CMD输出是:

代码语言:javascript
复制
C:\Stuff\myApp>gulp vulcanize
[15:44:55] Using gulpfile C:\Stuff\myApp\gulpfile.js
[15:44:55] Starting 'vulcanize'...
[15:44:55] Finished 'vulcanize' after 581 ms

C:\Stuff\myApp>

但是,很明显,CSS并不是一条龙的.

编辑

我现在已经将硫化作为一个独立的工具运行,并得到了以下错误:

代码语言:javascript
复制
{ [Error: ENOENT, open 'C:\Stuff\myApp\wer_components\paper-drawer-panel\paper-drawer-panel.css']
    errno: 34,
    code: 'ENOENT',
    path: 'C:\\Stuff\\myApp\\wer_components\\paper-drawer-panel\\paper-drawer-panel.css' }
Error: ENOENT, open 'C:\Stuff\myApp\wer_components\paper-drawer-panel\paper-drawer-panel.css'

注意,它尝试访问C:\Stuff\myApp\wer_components文件夹而不是C:\Stuff\myApp\bower_components。不知何故,它在文件夹名中丢失了bo,但我似乎不知道如何做到这一点。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-28 10:43:12

我已经解决了这个问题,但解决办法有点不寻常。首先,我阅读了大量关于绝对路径的问题,因此我将所有路径从绝对路径更改为相对路径,并提供了abspath: ''选项。

但是,这仍然没有解决问题,因为我得到了no resolver found错误,这也与绝对路径问题有关。

经过幸运的猜测,我找到了罪魁祸首-- fonts.googleapis.com

为什么这是个问题?用于外部字体和Google托管字体的CSS包括以下内容:

代码语言:javascript
复制
<link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic,500,500italic,700,700italic">

为了保持当前页面的HTTP(s)状态,他们使用无协议的URL。但是这个表示法在路径的开头有两个斜线(//),它有点混淆了内联过程。它可能将路径视为文件,而不是URL。

因此,gulp任务的完整修复如下:

代码语言:javascript
复制
var gulp = require('gulp');
var Vulcanize = require('gulp-vulcanize');

gulp.task('vulcanize', function () {
    return gulp.src('src/app.html')
        .pipe(Vulcanize({
            abspath: '',
            inlineScripts: true,
            inlineCss: true,
            stripExcludes: false,
            excludes: ['//fonts.googleapis.com/*'],
        }))
        .pipe(gulp.dest('dist'));
});

希望别人能找到有用的东西。

另外,如果有人认为//路径问题是一个错误,请报告。

票数 5
EN

Stack Overflow用户

发布于 2015-06-21 15:59:16

我也有同样的问题。目前,inlineCSS中存在一个bug。您可以在https://github.com/PolymerElements/polymer-starter-kit/issues/62上阅读更多内容。

票数 1
EN

Stack Overflow用户

发布于 2015-08-31 23:55:37

问题:找错纸-抽屉-面板-menu纸-项目-共享.menu纸-菜单-shared.css page.js

解决方案:需要更正gulpfile.js ->任务副本。必须从./app目录复制bower_components。

年长的

代码语言:javascript
复制
var bower = gulp.src([
    'bower_components/**/*'
]).pipe(gulp.dest('dist/bower_components'));

新的

代码语言:javascript
复制
var bower = gulp.src([
    'app/bower_components/**/*'
]).pipe(gulp.dest('dist/bower_components'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30819435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档