Node.js 如何调试yeoman应用程序?

Node.js 如何调试yeoman应用程序?,node.js,debugging,angularjs,yeoman,Node.js,Debugging,Angularjs,Yeoman,在使用服务器端语言/平台(如java、python/django和php)开发web应用程序的背景下,我开始学习Node.js和yeoman。我认为能够调试服务器端代码是必要的,以便提高代码质量。节点支持通过节点检查器和--debug选项进行调试。但是,如果应用程序是使用生成器(比如AngularJS)从yeoman创建的,并使用grunt启动,那么有没有一种简单的方法来启用调试 也许我首先应该问一个更高层次的问题:如果yeoman推广(如教程中所述)AngularJS,这是一个客户端MVC框架

在使用服务器端语言/平台(如java、python/django和php)开发web应用程序的背景下,我开始学习Node.js和yeoman。我认为能够调试服务器端代码是必要的,以便提高代码质量。节点支持通过节点检查器和--debug选项进行调试。但是,如果应用程序是使用生成器(比如AngularJS)从yeoman创建的,并使用grunt启动,那么有没有一种简单的方法来启用调试


也许我首先应该问一个更高层次的问题:如果yeoman推广(如教程中所述)AngularJS,这是一个客户端MVC框架,那么大多数代码将从浏览器而不是节点运行。这就是为什么服务器端调试对yeoman不再重要,因此没有文档记录的原因吗?

如果您使用
AngularJS
Chrome
,您可以使用。在Yeoman项目中,您可以使用
Grunt
检查您的应用程序:


也许答案并不适用于所有yeoman生成的应用程序,但我用angular fullstack generator解决了这个问题,它将express作为后端服务器。通过将文件Gruntfile.js中的express config的Debug设置为true启用调试:

grunt.initConfig({
     ...
 express : {
    options : {
        port : process.env.PORT || 9000
    },
    dev : {
        options : {
            script : 'server.js',
            debug : true //enable debugging
        }
    },
    ...
默认情况下,可以启动节点检查器在端口5858上进行调试

  • 安装:

    $npm安装-g节点检查器

  • 启动节点检查器服务器:

    $node检查器

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

    $node—调试路径\到\global\npm\node\u modules\yo\cli.js MyGenerator

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

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

  • 简单地说:

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

    它将打开一个带有初始断点的Chrome开发工具。

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

  • 安装
  • 修改应用程序“Gruntfile.js”,将express server的调试设置为“true”
  • 
    快递:{
    开发人员:{
    选项:{
    脚本:“server/app.js”,
    调试:正确
    }
    }
    }
    

  • 通过运行grunt Service启动应用程序
  • 在单独的终端运行
    节点检查器
  • 打开chrome并导航到
    http://127.0.0.1:8080/debug?port=5858
    。(如果您看到grunt控制台,您将看到节点调试器位于端口5858上)
  • 现在,您应该能够在服务器应用程序代码中设置断点并进行调试。您可以在代码中放置
    debugger
    语句,强制节点在该点断开并等待检查
  • 注意:
    节点检查器--无预加载将更快地加载节点检查器。

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

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

    使用此命令保存并运行项目
    grunt-service:debug
    ,现在您可以使用
    调试器项目任何部分中的var。

    请参阅:如何使用节点检查器的一个示例。我的问题不是调试yeoman生成器,而是调试yeoman使用grant启动的webapp。@Fred如果是这样,那么你的问题根本就不是yeoman。了解要调试的内容:浏览器中的客户端代码或服务器端代码。使用
    grunt-service:debug
    可能会有所帮助