我有一个简单的Gulp构建过程设置用于测试。我已多次阅读文档,但我似乎无法通过Gulp-inject将我想要的脚本注入index.html文件中。
我的Gulp文件如下所示:
gulp.task('inject1', function() {
return gulp.src('app/index.html')
.pipe(inject(gulp.src('./app/scripts/app.js', {read : false}))) // Not necessary to read the files (will speed up things), we're only after their paths
.pipe(gulp.dest("dist"));
});
gulp.task('inject2', function() {
return gulp.src('app/scripts/**/*.js', {read : false}) // Not necessary to read the files (will speed up things), we're only after their paths
.pipe(inject("./app/index.html"))
.pipe(gulp.dest("./dist"));
});
这是我的Index.html的一部分:
<!-- inject:js -->
<!-- endinject-->
这两个都是从github上的文档中复制的。
当我运行这些任务中的任何一个时,控制台只是说“开始'注入'完成'注入''
在我的./dist文件夹中,它会创建一个Index.html文件但不会注入js文件。
我尝试在src中输入并以很多不同的方式注入属性但没有运气。知道我做错了什么吗?
答案 0 :(得分:9)
首先,你的endinject标签有错误:
<!-- endinject-->
应该是
<!-- endinject -->
此插件在我和其他各种设置中都非常有用,所以问题可能在于您的配置。 因为当您使用流式传输时,您不能确定自己管道的文件,总是尝试使用插件来确切地查看您正在管道的文件。我建议使用gulp-using。试试这个来调试你的设置:
var debug = require('gulp-debug');
gulp.task('inject2', function() {
return gulp.src('app/scripts/**/*.js', {read : false})
.pipe(debug())
.pipe(inject("./app/index.html"))
.pipe(gulp.dest("./dist"));
});
另外,请确保使用相同的方法验证您是否也匹配html
文件。
除此之外 - 它只是试验和错误,直到您了解管道以获得具有正确路径的正确文件。
如果gulp-inject
没有注入任何文件,则表示您没有正确管道,或者您的目标inject
不正确。该插件有效,对我来说非常有用。
如果您需要查看示例正常工作 gulp文件,请查看此this gulpfile.js gist
答案 1 :(得分:1)
我在以下代码中遇到了同样的问题:
var injectSrc = gulp.src(['./public/css/*.css', '.public/js/*.js'], {read: false});
var injectOptions = {
ignorePath: '/public'
};
var options = {
bowerJson: require('./bower.json'),
directory: './public/lib',
ignorePath: '../../public'
}
gulp.task('inject', function() {
return gulp.src('./src/views/*.html')
.pipe(debug())
.pipe(wiredep(options))
.pipe(debug())
.pipe(inject(injectSrc, injectOptions))
.pipe(debug())
.pipe(gulp.dest('./src/views'));
});
我的index.html有以下内容:
<!--bower:css-->
<!--endbower-->
<!--bower:js-->
<!--endbower-->
<!--inject:css-->
<!--endinject-->
<!--inject:js-->
<!--endinject-->
Click on this link to see what my file structure was. 注入是正确创建css文件但不是js文件。凉亭依赖也很好。
最后我抓住了传递给gulp.src()的数组中缺少的'/'。修好后:
var injectSrc = gulp.src(['./public/css/*.css', './public/js/*.js'], {read: false});
它可以正常工作。