如何使用 gruntjs 自动注释或取消注释 .js 文件中的某些代码块?这样做的原因是我写的一些东西只是为了前端开发目的(即发送虚假数据/事件)。但是在部署时,我想确保这些代码被注释掉并且真正的 ajax 事件代码没有被注释掉。
如果有解决方法,请告诉我。或者我是否必须为此编写自己的 gruntjs。谢谢
最佳答案
我昨晚调查了这个个人项目,发现 grunt-template
非常适合这个法案。您可以像模板 block 一样将代码包装在注释掉的长划线/下划线中,它将在 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 代码仍然具有有效的语法并且无需编译即可运行
关于javascript - 使用 gruntjs 注释或取消注释 js block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337869/