1

在我正在使用的应用程序中,gulp-inject但在运行时出现错误gulpfile.js 如何解决?

console

PS F:\Nissan-Gulp> gulp
[14:38:38] Using gulpfile F:\Nissan-Gulp\gulpfile.js
[14:38:38] Starting 'server'...
[14:38:38] Finished 'server' after 22 ms
[14:38:38] Starting 'inject'...
[14:38:38] 'inject' errored after 19 ms
[14:38:38] Error in plugin 'gulp-inject'
Message:
    There is no `read` option. Did you mean to provide it for `gulp.src` perhaps?
[14:38:38] Server started http://localhost:9000
[14:38:38] LiveReload started on port 35729

我的代码:

gulp.task( "inject", function( ) {
    var sources = gulp.src(['./app/scripts/**/*.js', './app/stylesheets/**/*.css' ], {read: false}, {relative: true});
    return gulp.src('./app/index.html')
    .pipe(inject(sources, {
        read: false,
        ignorePath: '/app'
    }))
    .pipe(gulp.dest('./app'));
});

我的html代码:

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="/stylesheets/main.css">
    <!-- bower:css -->
    <!-- endbower -->
    <!-- inject:css -->
    <!-- endinject -->
</head>
<body>
    <!-- bower:js -->
    <!-- endbower -->
    <!-- inject:js -->
    <!-- endinject -->
</body>
4

1 回答 1

3

改变这个:

.pipe(inject(sources, {
    read: false,
    ignorePath: '/app'
})) 

.pipe(inject(sources, { ignorePath: '/app' } ))

您的源变量已经设置了读取选项 - 它是 gulp.src 而不是 gulp-inject 的选项。这就是为什么它应该在 gulp.src 的参数列表中,因为您正确地将它用于 var 源:

var sources = gulp.src['./app/scripts/**/*.js', './app/stylesheets/**/*.css' ], {read: false}, {relative: true});

ignorePath 是一个注入选项;那里没有列出读取。gulp-inject 描述

于 2017-05-26T00:54:13.097 回答