我在我们的应用程序中使用了gulp,我们在Gulpfile.js中有2个流程,一个用于生产,第二个用于开发,但我不想保留2个index.html文件,例如index.html和index.dev。 html,我想要一个index.html文件,但对于生产版本,我有不需要的脚本,例如。
<!--dev depends -->
<script src="angular-mocks/angular-mocks.js"></script>
<script src="server.js"></script>
<!--dev depends -->
问题是:如何通过Gulp 从html中删除某些内容?
答案 0 :(得分:10)
您可以使用针对此特定目的的 gulp-html-replace 插件:
答案 1 :(得分:6)
您的方法略有不同:模板化您的index.html
并使用gulp-template
插件处理您的构建中的模板:
var template = require('gulp-template');
//production task
gulp.task('prod', function () {
return gulp.src('src/index.html').pipe(template({
scripts : []
})).pipe(gulp.dest('dist'));
});
//dev task
gulp.task('prod', function () {
return gulp.src('src/index.html').pipe(template({
scripts : ['angular-mocks/angular-mocks.js', 'server.js']
})).pipe(gulp.dest('dist'));
});
并且您的index.html
可以变成这样的模板:
<% _.forEach(scripts, function(name) { %><script src="<%- name %>" type="text/javascript"></script><% }); %>
当然,您可以编写自己的插件/传递流,从index.html中删除脚本,但这需要实际解析/重写index.html。我个人认为基于模板的解决方案更容易实施,更“优雅”。