ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-无法使用gulp-useref进行gulp-rev-replace

2019-10-13 16:39:48  阅读:284  来源: 互联网

标签:javascript gulp gulp-rev


继续我以前的question-但这是下一步:使文件修订生效.

我正在使用gulp进行johnpapa自动化方面的课程,似乎碰到了另一堵墙(这就是您尝试将简洁的课程适应不同的文件结构:P时得到的结果).

基本上,问题是我确实获得了以修订版本命名的文件,但是这些名称没有进入最终结果test.jsp中,而且我不知道为什么…

这是任务(为简洁起见,省略了缩小,但在文件修订中工作正常):

gulp.task('build-dev', ['inject'], function () {

    var assets = $.useref.assets({searchPath: ''});

    return gulp
        .src(config.indexFile)
        .pipe($.rename('test.jsp'))
        .pipe($.plumber())
        .pipe(assets)
        .pipe($.rev())
        .pipe(assets.restore())
        .pipe($.useref())
        .pipe($.revReplace({modifyUnreved: replaceDirectory, modifyReved: replaceDirectory}))
        .pipe(gulp.dest(config.indexLocation))
        .pipe($.rev.manifest())
        .pipe(gulp.dest(config.indexLocation))
        ;
});

inject是将css和js引用注入索引文件的任务(正常工作),$是require(‘gulp-load-plugins’)({lazy:true}),config.indexFile是index.jsp.

replaceDirectory函数是(自rev-manifest生成完整路径名以来使用):

function replaceDirectory(path) {

    var strToReplace = '../..';
    var strToReplaceWith = process.cwd().replace(/\\/g, '/') + '/WebContent';

    if (path) {
        return path.replace(strToReplace, strToReplaceWith);
    } else {
        return path;
    }
}

我的文件结构(与本课程中的文件结构不同)是:

- ModuleDir
    - dist
        - css
            - lib.css
            - app.css
        - fonts
        - images
        - js
            - lib.js
            - app.js
    - css
    - js
    - web-app
        - InnerDir
            - index.jsp
            - test.jsp
    - package.json, bower.json, etc. (all the required files)

基本上,为CSS和JS库和应用程序资产处理index.jsp,这些资产和资源已缩小并连接到lib.css,lib.js,app.css和app.js.后来,所有这些都注入到名为test.jsp的index.jsp副本中.

磁盘上的资产收集,连接,注入工作和文件修订非常出色. test.jsp中文件名的更新不是很多…

任何想法或指针将不胜感激.

解决方法:

您必须在revReplace()的选项中添加replaceInExtensions:’.jsp’.

在查看插件代码并弄清楚之前,我有一天半的时间遇到​​了这个问题.我正在使用.php文件.该文档确实说您需要这样做,但是很容易错过.

希望能帮助到你.

标签:javascript,gulp,gulp-rev
来源: https://codeday.me/bug/20191013/1909017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有