【问题标题】:Is there a node forever equivalent for yarn?是否有一个永远等同于纱线的节点?
【发布时间】:2020-03-17 22:38:45
【问题描述】:

现在我使用screen 来运行我的命令yarn run dev-server。

我正在寻找类似的东西: forever start app.js

yarn run dev-server 除外。

package.json 中的dev-server 是 = "dev-server": "webpack-dev-server"

众所周知,如果程序在screen 中崩溃,它不会自动重新启动。

旁注,它是一个反应网络框架。

【问题讨论】:

  • 投票this proposal 以缓解 [yarn] 和 [yarnpkg] 周围的标签混淆。

标签: node.js ubuntu npm yarnpkg forever


【解决方案1】:

在 Ubuntu 服务器上,我建议使用 systemd 来运行您的 NodeJs 应用程序。

This article 有一些示例如何编写 systemd 单元文件。如果进程死了,systemd 会检测到它并自动重启它。

未经测试(但勾勒出这个想法):

[Unit]
Description=Example server

[Service]
WorkingDirectory=/path/to/my/server
ExecStart=/usr/bin/yarn run dev-server

[Install]
WantedBy=multi-user.target

虽然通过yarn 运行它有点奇怪。在生产设置中,我没有看到它。通常,您通过直接使用节点运行服务器来执行服务器(例如,node server.js)。

【讨论】:

  • 这很奇怪,因为脚本不适用于节点,只能用于纱线。
  • @MarcAlexander webpack-dev-server 通常仅用于开发。我只看到它在本地开发人员的机器上使用。当您通过 yarn(或 npm)运行命令时,它可以使用 node_modules 中的二进制文件。我认为,在您的情况下,它最终调用了 node_modules/.bin/webpack-dev-server 二进制文件(来源:webpack.js.org/configuration/dev-server)
  • 我明白了。这不是我的剧本。客户希望我将其用于演示目的,我不希望它崩溃并且不重新启动。
【解决方案2】:

您可以使用PM2

PM2 是一个守护进程管理器,可帮助您管理和保持您的应用程序 24/7 在线 和纱线一起使用

pm2 start yarn --interpreter bash --name api -- start

【讨论】:

  • 你不需要 bash。一个简单的pm2 start yarn -- run dev-server 就可以了。哦,您的示例中有一个错误-参数是run dev-server 而不是start
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 2021-06-04
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
相关资源
最近更新 更多