npm install 在 Elastic Beanstalk 上省略文件夹

npm install on Elastic Beanstalk omitting folders

今晚才开始发生这种情况,即使恢复了我完全不与 npm 相关的更改,它仍在发生。

我在这里设置了 AWS Elastic Beanstalk,我正在调用 eb deploy 来部署 KeystoneJS cms 应用程序。作为部署的一部分,它 运行s npm install,我有一个自定义 fork/branch 的 keystone github 存储库,它应该安装。确实如此!但是由于某些莫名其妙的原因 /lib/core/ 在 Keystone 存储库中只是......不存在。我收到错误抱怨那些丢失的文件,并且确实整个文件夹不存在。它们只是没有安装 npm,尽管 Keystone 存储库的其余部分安装得很好。

我无法在本地重现此内容。我会 运行 npm install,它会添加该文件夹。我会做 npm install <my-fork>,它会添加文件夹。每个组合都在本地工作得很好,我过去对 EBS 所做的每个部署都工作得很好。直到今晚这个文件夹才停止出现在我的安装中。

是不是 Elastic Beanstalk 的问题?是 npm 的问题吗?我确保将我的本地 npm 版本 (6.8.0) 与 EB 版本同步,没有区别。我已经检查以确保我没有任何可能以某种方式阻止 core 文件夹的 .ebignore.npmignore.gitignore,什么都没有。除非有人秘密控制第一次安装的临时文件夹?我不知道为什么这会突然成为一个问题,而不是几周前。

有人遇到过这样的事情吗?

[编辑] 有关更多详细信息,将我的 package.json 中的 keystone 版本更改为仅 keystone: "4.0.0" 可以使我的核心文件正常运行。如果我直接从相关的 keystone 存储库安装,keystone: "keystonejs/keystone",它们不存在。这又是在 eb install tho 上,如果我在本地安装,核心文件就会显示出来。但是在 eb 上,当我从 git url 安装时,我需要为我的特定 fork/branch 安装,我看到了这个问题。

嗯,我想通了!

https://npm.community/t/npm-pack-leaving-out-files-6-8-0-only/5382

有人破解了 npm 6.8.0。让我的故事成为一个警示,不要将您的部署脚本设置为自动将 npm 更新到最新版本。