如何在Grunt中使用Node调试模块?

时间:2015-03-12 12:42:18

标签: node.js gruntjs

如何在Grunt中使用Node debug module

我知道要使用我需要在命令行中设置DEBUG env var的模块,如下所示:

$ DEBUG=* node app.js

但是,我正在努力弄清楚如何用Grunt做到这一点。

1 个答案:

答案 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.DEBUGhttps://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可以按预期打印出调试消息。

希望此解决方法也适合您。 ;)