使用gruntjs注释或取消注释js块

Comment or uncomment js block using gruntjs

本文关键字:注释 js 取消 gruntjs 使用      更新时间:2024-02-20

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

如果有变通办法,请告诉我。或者我是否必须为此编写自己的grumjs。感谢

我昨晚为一个个人项目研究了这个问题,发现grunt-template非常适合这个法案。您可以将代码包装在注释掉的lo-dash/aunderline-like模板块中,并在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代码仍然具有有效的语法,并且在没有编译的情况下运行

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

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