ten*_*gen 5 amd requirejs angularjs gruntjs r.js
我正在尝试将requirejs集成到现有项目中,该项目在node/grunt堆栈上运行.我想使用r.js优化器将所有内容连接在一起并通过依赖关系来实现它的魔力.
我能够让r.js构建一个.js文件,并且没有错误......但没有任何反应.我在我的代码中设置了断点,但没有任何东西被启动 - 应用程序从未实际运行 bootstrap.js文件.我已经尝试将bootstrap.js放在一个立即函数中,当然它确实运行了,但依赖项尚未加载(似乎).我在这里错过了什么?
文件结构:
app
-> modules
- -> common
- - -> auth.js // contains an auth call that needs to return before I bootstrap angular
-> app.js
-> index.html
config
-> main.js
node_modules
vendor
-> angular/jquery/require/domready/etc
gruntfile.js
Run Code Online (Sandbox Code Playgroud)
gruntfile requirejs任务:
requirejs: {
compile: {
options: {
name: 'app',
out: 'build/js/app.js',
baseUrl: 'app',
mainConfigFile: 'config/main.js',
optimize: "none"
}
}
},
Run Code Online (Sandbox Code Playgroud)
main.js配置:
require.config({
paths: {
'bootstrap': '../app/bootstrap',
'domReady': '../vendor/requirejs-domready/domReady',
'angular': '../vendor/angular/angular',
'jquery': '../vendor/jquery/jquery.min',
'app': 'app',
'auth': '../app/modules/common/auth',
requireLib: '../vendor/requirejs/require'
},
include: ['domReady', 'requireLib'],
shim: {
'angular': {
exports: 'angular'
}
},
// kick start application
deps: ['bootstrap']
});
Run Code Online (Sandbox Code Playgroud)
app.js:
define([
'angular',
'jquery',
], function (angular, $) {
'use strict';
$( "#container" ).css("visibility","visible");
return angular.module('app');
});
Run Code Online (Sandbox Code Playgroud)
bootstrap.js:
define([
'require',
'angular',
'app',
'jquery',
'auth'
], function (require, angular, app, $, auth) {
var Authentication = auth.getInstance();
.. do auth stuff...
if (Authentication.isAuthorized) {
require(['domReady!'], function (document) {
angular.bootstrap(document, ['app']);
});
}
);
Run Code Online (Sandbox Code Playgroud)
您需要设置一个进入您的应用程序的主要入口点;应该是这样app.js,但是您在该文件中所做的只是定义文件依赖项,而不是实际加载任何代码。您需要将代码更改为:
require([
'angular',
'jquery',
], function (angular, $) {
'use strict';
$( "#container" ).css("visibility","visible");
return angular.module('app');
});
Run Code Online (Sandbox Code Playgroud)
有关 Define 和 require 之间差异的更多详细信息,请参阅此线程。
| 归档时间: |
|
| 查看次数: |
1946 次 |
| 最近记录: |