【问题标题】:How to debug a yeoman application?如何调试 yeoman 应用程序?
【发布时间】:2013-08-15 18:17:51
【问题描述】:

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

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

【问题讨论】:

标签: node.js debugging angularjs yeoman


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    也许答案对于所有 yeoman 生成的应用程序都不是通用的,但我用 angular-fullstack 生成器解决了这个问题,它具有 express 作为后端服务器。通过将文件 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端口调试。

    【讨论】:

      【解决方案3】:
      1. 安装node-inspector:

        $ npm install -g 节点检查器

      2. 启动节点检查器服务器:

        $ 节点检查器

      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

      【讨论】:

      • 我的问题不是调试 yeoman 生成器,而是调试 yeoman 使用 grant 启动的 webapp。
      • @Fred 如果是这样,那么您的问题根本与 Yeoman 无关。了解您要调试什么:浏览器中的客户端代码或服务器端代码。并使用适当的工具。
      【解决方案4】:

      就这么简单:

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

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

      【讨论】:

        【解决方案5】:

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

        1. 安装node-inspector
        2. 修改应用程序“Gruntfile.js”以将快速服务器的调试设置为“真”

        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 语句以强制节点在该点中断并等待您的检查。

        注意: node-inspector --no-preload 更快地加载节点检查器。

        【讨论】:

        • 使用 grunt serve:debug 可能会有所帮助
        【解决方案6】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2017-08-30
          • 2013-06-22
          • 2023-03-02
          • 2011-10-21
          • 2019-01-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多