部署到 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 路径吗?