【问题标题】:How to remove path prefix in gulp injected script paths?如何删除 gulp 注入脚本路径中的路径前缀?
【发布时间】:2016-04-17 06:57:32
【问题描述】:

我同时使用了 maven 和 gulp。在maven中,gulp的注入任务在打包jar时调用。我已将静态文件放在src/main/resources/static/ 中,用于项目中的spring boot 结构。打包jar后,index.html文件是这样的:

<!-- build:js js/app.js -->
<!--inject:js -->
<script src="src/main/resources/static/app/.................js"></script>
<!--endinject -->
<!--endbuild -->

我的问题是如何去除脚本src标签中的src/main/resources/static前缀?

以下代码是gulp.file.js中的注入任务:

gulp.task('injection', function () {
    var wiredep = require('wiredep').stream;
    var angularFilesort = require('gulp-angular-filesort');
    var option = gulpConfig.getWireDepOptions();

    return gulp
        .src(gulpConfig.config.indexPage)
        .pipe(wiredep(option))
        .pipe($.inject(
            gulp.src(gulpConfig.config.jsSources.injectable)
                .pipe(angularFilesort()), {ignorePath: '', addRootSlash: false}))
        // .pipe(gulp.dest('./src/main/resources/static/'));
        .pipe(gulp.dest('./src/main/resources/static/'));
});

和 gulp.config.js 中的配置:

var config = {
    buildPath:'',
    styles:[],
    indexPage: client + "index.html",
    browserSync:{
        proxy: 'localhost:' + port,
        port: 3000,
        files: ['**/*.*'],
        ghostMode: { // these are the defaults t,f,t,t
            clicks: true,
            location: false,
            forms: true,
            scroll: true
        },
        logLevel: 'debug',
        logPrefix: 'gulp-patterns',
        notify: true,
        reloadDelay: 1000
    },
    bower: {
        json: require('./bower.json'),
        directory: client+'vendors',
        ignorePath: './../../'
    },
    jsSources: {
        client: client + "app/**/*.js",
        exclude: "!vendors/**/*.js",
        sundry: ['./gulpfile.js', './gulpfile.config.js'],
        injectable: [
            scriptPath + '/quick-sidebar.js',
            scriptPath + '/demo.js',
            scriptPath + '/layout.js',
            scriptPath + '/metronic.js',
            client + 'app/**/*.module.js',
            client + 'app/**/*.js',
            '!' + client + '/app/**/*.spec.js',
        ]
    },
};

【问题讨论】:

    标签: javascript maven gulp wiredep grunt-wiredep


    【解决方案1】:

    通过在 gulp.file.js 中使用 src/main/resources/static 设置 ignorePath,它将删除 index.html 中的前缀路径

    【讨论】:

      【解决方案2】:

      在工作中挣扎了很多之后

          gulp.src(['app/client/public/index.html']) 
           .pipe(inject(gulp.src(['app/client/public/js/**/*.js','app/client/public/app.js'],{read: false} ),
            {addRootSlash : true,ignorePath:'/app/client/public'}))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-31
        • 1970-01-01
        • 2014-01-04
        • 1970-01-01
        • 2022-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多