amazon-web-services - npm install 在 Elastic Beanstalk 上省略文件夹
问题描述
这只是今晚才开始发生,即使在恢复我完全不与 npm 相关的更改之后,它仍然在发生。
我在这里有一个 AWS Elastic Beanstalk 设置,我正在调用eb deploy
它来部署 KeystoneJS cms 应用程序。作为部署的一部分,它运行npm install
,并且我有一个应该安装的 keystone github repo 的自定义 fork/branch。确实如此!但是由于某些莫名其妙的原因/lib/core/
,Keystone 回购只是......不在那里。我收到抱怨那些丢失文件的错误,果然整个文件夹都不存在。它们只是没有安装 npm,尽管 Keystone 存储库的其余部分安装得很好。
我无法在本地复制此内容。我会运行npm install
,它会添加该文件夹。我会npm install <my-fork>
的,它会添加文件夹。每个组合在本地都运行良好,并且我在过去对 EBS 所做的每次部署都运行良好。直到今晚,这个文件夹才停止出现在我的安装中。
Elastic Beanstalk 有问题吗?是 npm 的问题吗?我已确保将我的本地 npm 版本 ( 6.8.0
) 与 EB 同步,没有区别。我已经检查以确保我没有任何.ebignore
或.npmignore
或.gitignore
可能以某种方式阻止core
文件夹,什么都没有。除非有人秘密控制第一次安装到的临时文件夹?我不知道为什么这会突然成为一个问题,而不是几周前。
有没有人经历过这样的事情?
[编辑] 有关其他详细信息,请将我的 package.json 中的 keystone 版本更改为keystone: "4.0.0"
让我获得这些核心文件。如果我直接从关联的 keystone repo 安装keystone: "keystonejs/keystone"
,它们不存在。这再次只是在 eb 安装上,如果我在本地执行它们,核心文件会同时显示。但是在 eb 上,当我从 git url 安装时,我需要为我的特定 fork/branch 安装,我看到了这个问题。
解决方案
嗯,我想通了!
https://npm.community/t/npm-pack-leaving-out-files-6-8-0-only/5382
有人破坏了 npm 6.8.0。让我的故事成为一个警示,不要将您的部署脚本设置为自动更新 npm 到最新版本。
推荐阅读
- c++ - grpc golang/c++ 生成一次编译无处不在
- angular6 - 如何在单元测试中创建组件之前设置路由
- c# - 根据内容大小设置文本块边距
- laravel - 无法做出断言,因为异常使我在 Laravel 中的测试崩溃
- angularjs - AngularJS 表达式无法评估包含连字符的字符串(仅适用于 IE,版本 - 11)
- apache - 如何使用 mod_proxy_fastcgi 配置 Dancer2
- php - 将来自外部网站的帖子数据提交到 laravel
- java - 如何定义 REST 服务契约以在多个类似服务之间共享使用?
- python - Groupby 包含重复但也保留重复信息的列
- php - 在 Doctrine ArrayCollection 中获取给定项目