1

我正在开发一个角度应用程序并使用 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 代码保持不变。

我该如何解决这个问题?

谢谢!

4

0 回答 0