我想通了:r.js
通过阅读您mainConfigFile
的配置和您在配置中命名的任何模块来工作,这里的重要注意事项是r.js
只查看您命名模块中的第一个require
/define
并开始寻找它们;因此,例如,我有一个名为的模块app
:
require ['config'], (cfg) ->
require ['angular'], (A) ->
A.module cfg.ngApp, []
require ['routes'], () ->
require [
'factory/a-factory',
'service/a-service',
'controller/a-controller'
], () ->
A.bootstrap document, [cfg.ngApp]
这里的问题是r.js
从未通过第一个require
语句,因此连接不起作用。当我将其更改为(我的app.coffee
)时:
require ['config'], (cfg) ->
require ['angular'], (A) ->
A.module cfg.ngApp, []
require ['bootstrap'], (bootstrap) ->
bootstrap()
我的bootstrap.coffee
:
define [
'config',
'angular',
'routes',
'factory/a-factory',
'service/a-service',
'controller/a-controller'
], (cfg, A, routes) ->
class Bootstrap
constructor: () ->
routes()
A.bootstrap document, [cfg.ngApp]
这意味着我只需要在我的配置中定义angular
和,然后就可以完成其余的工作,如下所示:bootstrap
r.js
includes
r.js
baseUrl: 'assets/js/app',
mainConfigFile: 'assets/js/app/config.js',
name: 'app',
include: [
'../vendor/requirejs/require',
'bootstrap'
],
out: 'assets/js/dist/app.js'
现在一切正常!~~很遗憾,我不得不告诉r.js
包括在内requirejs
,也许我在那里做了一些愚蠢的事情?~~
天哪,我真是个笨蛋!
因此,在我的 HTML 中,我将连接的脚本加载为:
<script src="assets/js/dist/app.js"></script>
当它真的应该像这样加载时:
<script src="assets/js/vendor/requirejs/require.js" data-main="assets/js/dist/app"></script>
哦!