https://github.com/dfd07d/angular-amd-seed
master 分支,和 compare 分支。两份代码完全一样 (除了注释吧),我校对了好几遍。
但是在 master 分支下跑就报错,
Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:modulerr] Failed to instantiate module core due to:
Error: [$injector:nomod] Module 'core' 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.
在 comapre分支下就 ok。我擦!
谁能帮我看看么?
我觉得主要的问题应该是出在这几个文件中,但自己已经看不出来了。
js/
|-- app.js
|-- main.js
|-- core/core.js
;(function() {
require.config({
// 设置`alias`
paths: {
"angular": '/bower_components/angular/angular',
"angular.route": "/bower_components/angular-route/angular-route",
"angular.resource": "/bower_components/angular-resource/angular-resource",
"angular.cookies": "/bower_components/angular-cookies/angular-cookies",
"ui.bootstrap": "/bower_components/angular-ui-bootstrap-bower/ui-bootstrap"
},
shim: {
// 由于angular并非`define()`定义的模块
// 所以手动导出为AMD支持的格式
"angular": {
exports: "angular"
}
},
// 引入启动应用的模块`./bootstrap`
deps: ["./bootstrap"]
})
}())
// 这里并非定义AMD模块
// 仅仅使用`require()`方法作为模块加载器
require([
"angular",
"./app"
], function( angular ) {
angular.element()
.ready(function() {
// 等待DOM READY之后,手动启动应用
angular.bootstrap( document, [ "app" ] )
})
})
define([
"angular",
"./core/core",
"./ui/ui",
"./prj/prj"
], function( angular /*core, ui, prj*/ ) { // 虽然我们这里得到了`core`,`ui`,`prj`模块的对象,
// 但angular在定义module依赖的时候并不需要直接的对象
var app = angular.module("app", [
// 这时候,module`core`,`ui`,`project`已经可以使用
"core",
"ui",
"project"
])
// 配置`./app`模块
app.config(function( $routeProvider ) {
$routeProvider.otherwise({
redirectTo: '/projects'
})
})
// 导出`./app`模块
return app
})
define([
"require",
"angular"
], function( require, angular ) {
var core
// 因为`angular.route`等并非标准AMD模块,
// 所以仅仅使用`require()`预加载进来,
// 然后导出返回值作为导出的`./core`模块
return require([
"angular.route",
"angular.resource",
"angular.cookies"
], function() {
// 创建module`core`
core = angular.module("core", [
"ngRoute",
"ngResource",
"ngCookies"
])
// 返回给`require()`方法作为结果
return core
})
})
跪谢!