我正在开发一个角度应用程序,并使用ejs创建模板和grunt以连接(js,css)minify(js,css和html)和uglify(js)文件。
index.ejs:
<!DOCTYPE html>
<html>
<head lang="en">
<!-- head tags -->
<% if(isDev) { %>
<!-- css links for dev-->
<% } else { %>
<!-- css links for production-->
<% } %>
</head>
<body >
<div ng-app="app">
<ng-view ></ng-view>
<%- include header.ejs %>
<!-- more ejs templates... -->
</div>
<% if(isDev) { %>
<!-- JS scripts for dev-->
<% } else { %>
<script type="text/javascript" src="/js/app.min.js"></script>
<% } %>
</body>
</html>
grunt文件:
module.exports = function (grunt) {
grunt.initConfig({
rootSource: __dirname + '/public',
rootTarget: __dirname + '/dist',
concat: {
//Concatenating the css and js
},
uglify: {
//Uglifies the js files - works fine
},
cssmin: {
//Minifies CSS files - works fine
},
ejs: {
app: {
options: {isDev: false},
src:['<%= rootSource %>/html/index.ejs'],
dest: '<%= rootTarget %>/views/app-ejs.html'
}
},
htmlmin:{
dist: {
options: {
removeComments: true,
collapseWhitespace: true
},
files: {
'<%= rootTarget %>/views/app.html': '<%= rootTarget %>/views/app-ejs.html'
}
}
},
clean:[] //Clean files
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-ejs');
grunt.loadNpmTasks('grunt-contrib-htmlmin');
grunt.loadNpmTasks('grunt-contrib-clean');
// Default task(s).
grunt.registerTask('default', ['concat', 'uglify', 'cssmin', 'ejs', 'htmlmin', 'clean']);
};};
ejs工作正常并创建app-ejs.html文件。 htmlmin从app-ejs.html创建一个文件,其中只包含index.ejs文件中的包含在包含之前的代码以及第一个包含文件(header.ejs)缩小的前2行。其余的html代码没有动过。
我该如何解决这个问题?
谢谢!