首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用gulp后将已恢复的文件包含到.html中?

如何在使用gulp后将已恢复的文件包含到.html中?
EN

Stack Overflow用户
提问于 2015-08-18 11:28:20
回答 2查看 6.7K关注 0票数 6

所以我在gulp中创建了这个任务:

代码语言:javascript
复制
'use strict';
var gulp = require('gulp');
var gulpGlobals = require('./_gulp-globals.js');
var rev = require('gulp-rev');
var revReplace = require('gulp-rev-replace');


gulp.task('gulp-rev', function () {
    var sources = gulpGlobals.src + '/somefolder/**/*.js';
    var fileToInject = gulpGlobals.destination + '/somefolder/script.js';

    var outputFolderJs = 'webapp/dist/somefolder';

    return gulp.src(fileToInject)
        .pipe(rev())
        .pipe(revReplace())
        .pipe(gulp.dest(outputFolderJs));
});

它还创建了名为“script-7c58e79612.js”的附加文件,例如:

但是如何将它包含在我的html文件中而不是script.js中呢?所以前面的例子,而不是我的file.html中的这一行

代码语言:javascript
复制
<script type="text/javascript" src="{{ STATIC_URL}}/somefolder/script.js</script>

我可以拥有这个:

代码语言:javascript
复制
<script type="text/javascript" src="{{ STATIC_URL}}/somefolder/script-7c58e79612.js</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-19 18:35:20

您在尝试时需要gulp-rev-replace,但是您需要在html文件上使用它,而不是脚本文件。例如,尝试像这样修改任务:

代码语言:javascript
复制
var manifestFolder = 'webapp/dist/manifest';

gulp.task("gulp-rev", function(){
    var sources = gulpGlobals.src + '/somefolder/**/*.js';
    var fileToInject = gulpGlobals.destination + '/somefolder/script.js';
    var outputFolderJs = 'webapp/dist/somefolder';

    return gulp.src(fileToInject)
        .pipe(rev())
        .pipe(gulp.dest(outputFolderJs))
        .pipe(rev.manifest()
        .pipe(gulp.dest(manifestFolder));
})

gulp.task("revreplace", ["gulp-rev"], function() {
    var manifest = gulp.src("./" + manifestFolder + "/rev-manifest.json");
    var source = gulpGlobals.src + '/somefolder/file.html';
    var outputFolderHtml = 'webapp/dist/somefolder';

    return gulp.src(source)
        .pipe(revReplace({manifest: manifest}))
        .pipe(gulp.dest(outputFolderHtml));
});

此代码基于使用文件 of gulp-rev-replace的第二个示例。该页还提供了更多的文档和示例。

票数 8
EN

Stack Overflow用户

发布于 2016-08-26 19:23:00

您可以通过在gulp-rev-all插件中交换来避免中间清单步骤。它将恢复资产和重写引用合并为一个步骤。

代码语言:javascript
复制
// Imports
const gulp =   require('gulp');
const RevAll = require('gulp-rev-all');

// Tasks
const task = {
   resourcify() {
      const srcFiles =    'some/src/folder/**';
      const buildFolder = 'some/build/folder';
      return gulp.src(srcFiles)
         .pipe(RevAll.revision({ dontRenameFile: ['.html'] }))
         .pipe(gulp.dest(buildFolder));
      }
   };

// Gulp
gulp.task('resourcify', task.resourcify);

文档:

https://github.com/smysnk/gulp-rev-all

注意:

这个项目是有争议的,因为它将两个功能合并成一个Gulp插件。然而,在这种情况下,组合这些功能是必要的,因为这种组合解决了鸡和蛋的问题。

编辑:

更新的示例代码,以支持最新版本的插件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32071159

复制
相关文章

相似问题

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