我目前正在使用mean.io堆栈进行个人项目,一切都在本地运行顺利。我试图部署到Heroku,我遇到一个模块没有正确实例化的问题!我在Stack Overflow上找到了类似的问题,但没有一个答案适合我。
这是我的错误:
错误:[$ injector:modulerr]由于以下原因无法实例化模块均值: [$ injector:modulerr]由于以下原因无法实例化angularFileUpload模块: [$ injector:nomod]模块'angularFileUpload'不可用!您要么错误拼写了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 (dist.min.js)
好像我的模块没有加载。但根据日志,它正确安装:
mean@0.3.3 postinstall / tmp / build_5d155aeb-14b5-4414-af19-986a68df3b19 node node_modules / bower / bin / bower install
bower ng-file-upload-shim#* not-cached git://github.com/danialfarid/angular-file-upload-shim-bower.git#*
bower ng-file-upload-shim#* resolve git://github.com/danialfarid/angular-file-upload-shim-bower.git#*
bower angular#* not-cached git://github.com/angular/bower-angular.git#* bower angular#* resolve git://github.com/angular/bower-angular.git#* ... bower ng-file-upload#* not-cached git://github.com/danialfarid/angular-file-> upload-bower.git#*
bower ng-file-upload#*解决git://github.com/danialfarid/angular-file-> upload-bower.git#*
...
bower ng-file-upload-shim#* install ng-file-upload-shim#1.4.0
bower ng-file-upload#* install ng-file-upload#1.4.0
...
bower angular#1.2.19安装角度#1.2.19
...
完成,没有错误。
注意:Danial Farid的angularFileUpload要求在angular之前加载shim.js文件,然后在angularFileUpload之前加载。看起来像之后安装了角度,这会有问题吗?
这是我的模块,我声明了依赖:
angular.module('mean.thingy', ['angularFileUpload','ngAnimate']).controller(...
最后,我的assets.json:
"js": {
"public/build/js/dist.min.js": [
"public/system/lib/jquery/dist/jquery.min.js",
"public/system/lib/angular-file-upload-master/dist/angular-file-upload-shim.js",
"public/system/lib/angular/angular.js",
...
"public/system/lib/angular-file-upload-master/dist/angular-file-upload.js",
"public/init.js",
"public/*/*.js",
"public/*/{controllers,routes,services}/*.js"
]
}
我很感激您的任何帮助或预感!谢谢!
答案 0 :(得分:4)
我得到了同样的错误,并通过将文件路径添加到karma.conf.js
来解决答案 1 :(得分:1)
我有同样的问题,我使用mean.js而不是mean.io所以可能会略有不同。
当你问到&#34时,你走在正确的轨道上;看起来像之后安装了角度,这会有问题吗?"我相信。
要解决此问题,请确保在 production.js 配置中按顺序放置脚本以及 all.js ,例如
。 'public/lib/ng-file-upload/FileAPI.min.js',
'public/lib/ng-file-upload/angular-file-upload-shim.min.js',
'public/lib/angular/angular.js',
'public/lib/ng-file-upload/angular-file-upload.min.js',
答案 2 :(得分:1)
将您的上传相关性声明更改为:
angular.module(&#39; mean.thingy&#39;,[&#39; ngFileUpload &#39;,&#39; ngAnimate&#39;])... < / p>
答案 3 :(得分:0)
在我的情况下,这是因为我的本地副本angular-file-upload-shim.min.js和angular-file-upload.min.js已损坏(我没有使用bower获取它们。)
尝试从作者的github页面下载原始.js文件:https://github.com/danialfarid/angular-file-upload/tree/master/dist,单击该文件,单击“Raw”,然后将您的JS文件指向这些文件的本地副本。