部署到 Elastic beantalk 时 Angular 模块损坏

Posted

技术标签:

【中文标题】部署到 Elastic beantalk 时 Angular 模块损坏【英文标题】:Angular module broken when deploying to Elastic beanstalk 【发布时间】:2017-12-03 22:20:00 【问题描述】:

我有一个角应用程序突然在弹性豆茎中损坏。它工作正常,然后通过弹性豆茎部署时,它突然开始抛出以下错误:

Error: [$injector:nomod] Module 'BookModule' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

我对 BookModule 应用的定义如下所示:

 var BookModule = angular.module('BookModule', ['ui.select',
  'ngSanitize',
  'blockUI',
  'ngAnimate',
  'ui.bootstrap',
  'restangular',
  'ui.grid',
  'ui.grid.resizeColumns',
  'ui.grid.moveColumns',
  'angularLazyImg',
  'angularSpinner',
  'bootstrapLightbox',
  'angularjs-dropdown-multiselect',
  'datatables',
  'datatables.select',
  'datatables.bootstrap'
]);

我的 Bowerfile 看起来像这样

# asset 'bootstrap'

asset 'papaparse'
asset 'angular-ui-grid'
asset 'underscore'
asset 'restangular'
asset 'angular', '1.5.8'
asset 'leaflet-draw'
asset 'leaflet.fullscreen'
asset 'angular-bootstrap'
asset 'angular-ui-select'
asset 'angular-sanitize', '1.5.8'
asset 'angular-spinner'
asset 'angular-block-ui'
asset 'angular-bootstrap-lightbox'
asset 'angular-animate', '1.5.8'
asset 'datatables.net', '1.10.13'
asset 'datatables.net-select', '1.2.2'
asset 'angular-datatables', '0.5.6'
resolution "angular", "1.5.8"

错误出现在所有部署中,仅在生产中(在 ebs 上),甚至在以前未出现错误的旧版本的应用程序中。这让我认为上述库之一已更新导致问题。我怎样才能找出是哪一个,或者这确实是问题所在?

【问题讨论】:

【参考方案1】:

事实证明,传单已更新,导致版本不兼容。我查看了 EB 上的一个工作实例,并运行了此处给出的代码来检查已安装软件包的版本。 How do I find out what version of a bower package is actually installed?。然后我又回到了一个坏的,并区分了结果。解决方案是将 bower 中的所有软件版本锁定到工作实例中的版本。

【讨论】:

以上是关于部署到 Elastic beantalk 时 Angular 模块损坏的主要内容,如果未能解决你的问题,请参考以下文章

ModuleNotFoundError:部署到 Elastic Beanstalk 时没有名为“django”的模块

Flask 应用程序 - 部署到 AWS Elastic Beanstalk 时出错

Django 在部署到 Elastic Beanstalk 时看不到环境变量

我们可以在部署到 Elastic Beanstalk 时指定 Dockerfile 路径吗?

将网络核心 API 部署到 AWS Elastic Beanstalk 服务器时出错

通过 aws.push 部署到 Elastic Beanstalk 时保留某些现有文件