1

我有一个较大的基于 nodejs 的 Web 应用程序,服务器和客户端组件一起工作。我目前正在部署该应用程序,但git pull用于从服务器存储库中获取我最新的生产分支。运行一个 gitpost-commit挂钩来执行npm install和重建服务器.env文件,PM2 正在使用 .env 文件中的更改来监视各种进程(3 个 Web 服务器)以重新启动它们。

node_modules 位于项目的最高级别,具有单独的服务器和客户端子目录。由于这是在快速局域网上使用 http2,因此我不会费心使用 web-pack 等压缩客户端文件,尽管我确实使用汇总lit-elementlit-html整理它们的导入语句(它们不是相对的或绝对的)已经嵌入其中。

我刚刚读到我真的应该npm ci为我的节点依赖项做一个,但是阅读说明它说它吹走了 node_modules 目录并重新开始(而npm install没有)。由于这一切都在树莓派上运行,因此它不是即时的。

我不确定 node_modules 的临时丢失是否会对正在运行的应用程序产生太大影响 - 毕竟我相信这些模块都将被缓存到内存中,但它可能没有,而且其中一台服务器也有可能倒塌并且pm2 重新启动它,所以我想知道....

那么这里的最佳实践是什么。例如,是否可以将package.json,复制package-lock.json到一个特殊的build子目录,在那里构建node_modules目录,然后将其移回原位。一旦建成。或者,还有更好的方法?

4

0 回答 0