node.js - 如何让 gulp-vulcanize 忽略 socket.io.js?

标签 node.js socket.io gulp polymer-1.0 vulcanize

我的一个 .html 文件导入了 /socket.io/socket.io.js,我想硫化这个文件但忽略导入套接字的脚本标签。来吧

我编写了以下 gulp 任务:

// vulcanize HTML files
var vulcanizeHtmlSrc = 'views/**/*.html',
    vulcanizeHtmlDst = 'build/views';
gulp.task('vulcanize', function() {
gulp.src(vulcanizeHtmlSrc)
    .pipe(vulcanize({
        excludes: ['//fonts.googleapis.com/*', '/socket.io/socket.io.js'],
        stripExcludes: false
    }))
    .pipe(gulp.dest(vulcanizeHtmlDst));    
});

我仍然收到以下错误:

ERROR finding /socket.io/socket.io.js

我做错了什么?

最佳答案

// vulcanize HTML files
var vulcanizeHtmlSrc = 'views/**/*.html',
vulcanizeHtmlDst = 'build/views';
gulp.task('vulcanize', function() {
gulp.src(vulcanizeHtmlSrc)
    .pipe(vulcanize({
        excludes: ['//fonts.googleapis.com/*',
            './bower_components/polymer/polymer.html'
        ],
        stripExcludes: false,
        inlineScripts: true,
        inlineCss: true,
        implicitStrip: true,
        stripComments: true
    }))
    // pipe to injectString to add script tags that cause an issue with vulcanize
    // e.g. <script src="/socket.io/socket.io.js">
    // Error caused if the script is added in index.html itself
    // ERROR finding /socket.io/socket.io.js
    .pipe(injectString.before('<script class="usesSocket.io">', '<script src="/socket.io/socket.io.js"></script>\n'))
    .pipe(gulp.dest(vulcanizeHtmlDst));
});

只需将一个类添加到需要 socket.io.jsscript 标签,并使用 插入 socket.io.js >gulp-inject-string 硫化后的模块。这有点hacky。无论哪种方式 vulcanize 仍然会导致很多错误,我建议人们避免使用 Polymer(如果正在开发的应用程序已投入生产),直到它完全稳定并具有更好的文档。

关于node.js - 如何让 gulp-vulcanize 忽略 socket.io.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31378593/

相关文章:

node.js - 更改 sails 模型后出错

node.js - 我如何在 node.js 中使用 redis?

oracle - 当第 3 方软件更新数据库时,Node.JS 和/或 Meteor 如何从数据库获取回调

javascript - 在继续下一个任务之前使 gulp 同步写入文件

node.js - 无法通过 npm 安装 mongoose - 依赖失败 es6-promise 3.0.2

caching - Android Webview - 无法禁用缓存

java - 是否可以在服务器端的一个套接字中接收来自多个客户端的数据报包?

websocket - socket.io 是 WebRTC 或 WebSocket 还是其他什么?

gulp watch : no gulpfile found

javascript - Gulp.js 类型错误 : glob pattern string required