我正在开发一个角度应用程序并使用 ejs 创建模板和 grunt 来 concat(js, css) minify (js, css and 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>
咕噜声文件:
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 代码保持不变。
我该如何解决这个问题?
谢谢!