📜  nodemon 应用程序崩溃 (1)

📅  最后修改于: 2023-12-03 14:44:44.870000             🧑  作者: Mango

Nodemon 应用程序崩溃

当你使用 nodemon 运行你的应用程序时,如果它崩溃了,nodemon 会自动退出。这会影响你的开发过程,因为你需要手动重新启动应用程序。

在解决 nodemon 应用程序崩溃的问题之前,我们先来了解一下 nodemon 崩溃的原因。

崩溃原因

nodemon 监视你的文件系统,一旦文件被修改,它会自动重启你的应用程序。如果应用程序崩溃了,nodemon 会认为应用程序已经处理完请求并退出,然后它会退出。

如果应用程序崩溃原因是代码语法错误,例如拼写错误、缺少括号等,nodemon 无法重新启动应用程序。这是因为 nodemon 只会重启已经加载的模块,而语法错误会阻止模块加载。

解决方法
  1. 使用 --ignore 选项忽略资源文件和测试文件。

    如果你的应用程序有大量的资源文件和测试文件,那么建议使用 --ignore 选项来忽略它们。这样 nodemon 只会运行主要的应用程序文件,减少了应用程序崩溃的可能性。

    nodemon app.js --ignore public/
    
  2. 使用 nodemon.json 配置文件

    可以创建一个名为 nodemon.json 的文件,指定配置选项。有一些配置选项可以帮助你避免 nodemon 应用程序崩溃的问题。

    {
      "restartable": "rs",
      "ignore": [".git", "node_modules/"],
      "verbose": true,
      "events": {
        "restart": "osascript -e 'display notification \"App restarted due to:\n'$FILENAME'\" with title \"nodemon\"'"
      }
    }
    

    restartable 选项允许您重新启动应用程序而无需键入 rs。

    ignore 选项告诉 nodemon 忽略 git 目录和 node_modules 目录。

    verbose 选项允许节点在控制台中输出详细信息。

    events 选项允许您自定义每次重启应用程序时执行的操作。

    使用nodemon.json 配置文件可以很容易地管理 nodemon 配置选项。

  3. 使用 PM2 代替 nodemon

    PM2 是一个高级 Node.js 进程管理器,可与任何应用程序一起使用,使用它可以代替 nodemon。

    使用 PM2 启动应用程序,即使应用程序崩溃,PM2 也会自动重启应用程序。此外,PM2 将应用程序作为守护程序运行,即使终端会话终止,应用程序也会继续运行。

    pm2 start app.js
    

    使用 PM2 会大大提高您的开发体验。

结论

nodemon 是 Node.js 应用程序开发过程中的一个强大工具,但是,当您的应用程序崩溃时,它可能会导致您的开发过程受到严重影响。在本文中,我们介绍了一些方法来帮助您避免 nodemon 应用程序崩溃的问题。如果您使用 PM2 替换 nodemon,可以获得更好的使用体验。