如何调试yeoman应用程序?

时间:2013-08-13 23:17:50

标签: node.js debugging angularjs yeoman

从使用服务器端语言/平台(如java,python / django和php)开发Web应用程序的背景来看,我开始学习Node.js和yeoman。我认为能够调试服务器端代码是必不可少的,以提高代码质量。 Node支持通过node-inspector和--debug选项进行调试。但是,如果使用生成器(例如AngularJS)使用生成器创建应用程序,并使用grunt启动,是否有一种简单的方法来启用调试?

我首先应该问的一个更高级别的问题是:如果yeoman推广(如教程中所述)AngularJS,它是一个客户端MVC框架,那么大多数代码将从浏览器而不是从Node运行。这就是为什么服务器端调试对于自耕农来说不再重要的原因,因此没有记录?

6 个答案:

答案 0 :(得分:6)

这样简单:

npm install -g node-inspector
node-debug yo GENERATOR_NAME

它会打开一个带有初始断点的Chrome DevTool。

答案 1 :(得分:5)

我正在开发一个yemoan angular-fullstack应用程序。我按如下方式调试服务器端节点js应用程序代码;

  1. 安装node-inspector
  2. 修改应用程序' Gruntfile.js'将调试设置为' true'用于快递服务器
  3. express: { dev: { options: { script: 'server/app.js', debug: true } } }

    1. 运行grunt serve启动应用程序。
    2. 在单独的终端中运行node-inspector
    3. 打开Chrome并导航至http://127.0.0.1:8080/debug?port=5858。 (如果你看到grunt控制台,你会看到节点调试器在端口5858上。)
    4. 现在,您应该可以在服务器应用程序代码中添加断点和调试。您可以在代码中放置debugger语句,以强制节点在该点断开并等待您的检查。
    5. 注意: node-inspector --no-preload可以更快地加载节点检查器。

答案 2 :(得分:3)

  1. 安装node-inspector

    $ npm install -g node-inspector

  2. 启动Node Inspector服务器:

    $ node-inspector

  3. 在调试模式下使用Yeoman-cli运行node.js:

    $ node --debug path \ to \ global \ npm \ node_modules \ yo \ cli.js MyGenerator

    其中' MyGenerator'是要调试的Yeoman生成器名称。
    在Windows" path \ to \ global \ npm"类似于" C:\ Users {UserName} \ AppData \ Roaming \ npm"。

  4. 打开Chrome或Opera并转到http://localhost:8080/debug?port=5858

答案 3 :(得分:1)

如果您使用AngularJSChrome,则可以使用Batarang plugin。在Yeoman项目中,您可以使用Grunt检查您的应用程序:

答案 4 :(得分:0)

也许答案不是所有yeoman生成的应用程序的通用,但我用angular-fullstack生成器,它已表示为后端服务器。通过将文件Gruntfile.js中的express配置的debug设置为true来启用调试:

grunt.initConfig({
     ...
 express : {
    options : {
        port : process.env.PORT || 9000
    },
    dev : {
        options : {
            script : 'server.js',
            debug : true //enable debugging
        }
    },
    ...

然后,默认情况下,可以启动node-inspector以在端口5858上进行调试。

答案 5 :(得分:0)

首先在Gruntfile.js中启用调试模式

grunt.initConfig({
...
express : {
options : {
    port : process.env.PORT || 9000
},
dev : {
    options : {
        script : 'server.js',
        debug : true //enable
    }
},
...

使用此命令grunt serve:debug保存并运行项目,现在您可以在项目的任何部分使用debugger; var。