如何在Grunt中使用Node debug module?
我知道要使用我需要在命令行中设置DEBUG
env var的模块,如下所示:
$ DEBUG=* node app.js
但是,我正在努力弄清楚如何用Grunt做到这一点。
答案 0 :(得分:1)
我使用grunt-env
帮助在grunt中设置env变量,如下所示:
grunt.loadNpmTasks('grunt-env');
// Define the configuration for all the tasks
grunt.initConfig({
// Env-specific configuration
env: {
options: {
//Shared Options Hash
},
dev: {
NODE_ENV: 'development',
DEBUG: 'wukong:*,loopback:security:role,-not_this'
},
test: {
NODE_ENV: 'test',
DEBUG: 'wukong:*,-not_this'
}
},
// ...
}
但是,它不起作用,因为调试模块在模块初始化的最开始加载并保存process.env.DEBUG
:https://github.com/visionmedia/debug/blob/master/node.js#L209
因此,我通过其“隐藏”的公共API enable再次加载DEBUG
变量的技巧为:
const debug = require('debug');
debug.enable(process.env.DEBUG);
module.exports = debug;
当使用此debug
包装器时,grunt
可以按预期打印出调试消息。
希望此解决方法也适合您。 ;)