javascript - 使用 gruntjs 注释或取消注释 js block

标签 javascript node.js gruntjs

如何使用 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/

相关文章:

javascript - 在 Windows 中哪里可以找到 compass 的源文件?

javascript - 如何在 React 中删除项目?

node.js - Node.js/Mongoose 上的 "VersionError: No matching document found"错误

javascript - 使用 Grunt 管理 AngularJS 模块版本和发布

node.js - 使用 jade 模板引擎加总

c++ - 用于数学的 Node.js 与 C++

gruntjs - Grunt 构建在 travis 中失败 - "Cannot find any-promise implementation"

javascript - 如何在 Angularjs 中使用过滤器?

javascript - "prompt is not defined"

javascript - Axios 使用 React 自动刷新