使用gruntjs注释或取消注释js阻止

时间:2013-12-02 21:08:41

标签: javascript node.js gruntjs

如何使用gruntjs自动评论或取消注释.js文件中的某些代码块?原因是我为了前端开发目的(即发送虚假数据/事件)而编写的内容。但是在进行部署时,我想确保这些代码被注释掉,并且真正的ajax事件代码被取消注释。

如果有解决方法,请告诉我。或者我是否必须为此编写自己的gruntjs。感谢

2 个答案:

答案 0 :(得分:1)

我和迈克尔在一起;我强烈建议将测试代码提取到测试中,这样它永远不会被删除,如果你需要重构,也会帮助你。 Mockjax专为此设计,您可以将其与QUnit之类的内容配对,如下所示:

https://gist.github.com/NickJosevski/1564578

答案 1 :(得分:1)

我昨晚对这个个人项目进行了调查,结果发现grunt-template很适合这个法案。您可以将代码包装在注释掉的lo-dash / underscore中,就像模板块一样,它将在grunt编译期间进行评估。

我在项目中使用它的方式如下:

// ....
//concat files for package

template: {
    build: {
        options: {
            data: grunt.file.readJSON('./package.json')
        },
        files: {
            'js/dist/package-<%= pkg.version %>.js': ['js/dist/package-<%= pkg.version %>.js']
        }
    }
}
// ....


grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-template');
grunt.loadNpmTasks('grunt-contrib-uglify');

grunt.registerTask('default', [
    'concat',
    'template',
    'uglify',
]);

如果我有像

这样的行,那么js/dist/package-<%= pkg.version %>.js中的某个地方
// <% if(development) { %>
console.log("better remove this line Johnny");
alert("or the clients will be pissed");
// <% } %>

Grunt将评估package.development以确定是否包含此行。非常整洁 - 我用它来排除客户端服务器可能不支持的无意义代码。另一件好事是javascript代码仍然具有有效的语法并且在没有编译的情况下运行