我正在为NodeJS项目设置CI / CD,有时开发人员会忘记将文件(模块)发送给源代码管理。我运行npm ci和npm test都没有问题,该应用程序已部署到我的服务器上。但是,由于缺少模块,一旦执行它就会出错。
是否有最佳实践,可确保在部署节点应用程序之前所需的所有文件都可用?
防止这种情况的最佳方法是让开发人员获取项目的校验和,并将其与源代码控制和/或您的服务器进行比较。如果校验和匹配,则将传输所有文件。
将所有require()
调用替换为webpack import
调用,并让您的构建运行webpack。在运行时,节点将运行包而不是常规入口点。
Webpack将在构建期间捕获所有无法访问的import
。
所有这些都是假设丢失的文件是模块(代码)而不是资源(例如JSON文件)。