我有我的应用程序的 src。我使用 AngularJS。我使用 RequireJS 作为模块加载器。我使用 Grunt 作为任务运行器。当我使用 src 运行应用程序时:一切都很好。当我使用 Grunt 构建应用程序时,应用程序无法正常工作。我在控制台中没有错误。
我注意到的主要事情:我的代码(我的应用程序代码:app.js 和 下的文件js/
)没有出现在 grunt 任务设置中设置的输出文件中。另外,我不认为AngularJS有什么东西。
主配置文件:
require.config({
paths: {
'angular' : '../components/angular/angular',
/* etc..... */
'jquery': '../components/jquery/dist/jquery',
'application': './app'
},
shim: {
/* etc */
application: {
deps: ['angular']
},
angular: {
exports : 'angular'
}
},
baseUrl: '/js'
});
require(['application', 'angular', 'ngRoute', 'bootstrap' /* ngRoute and bootstrap from etc :) */], function (app) {
app.init();
});
我在 app.js 中的应用是:
define([
'require', 'angular', 'main/main', 'common/common'
], function (require) {
'use strict';
var angular = require('angular');
var app = angular.module('myApp', ['ngRoute', 'main', 'common']);
app.init = function () {
angular.bootstrap(document, ['myApp']);
};
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider
./* ... some code */
}
]);
return app;
});
body
我在标签末尾添加了主要的 RequireJS 配置文件:
<script type="text/javascript" src="components/requirejs/require.js" data-main="js/bootstrap.js"></script>
现在我有问题。我有 Grunt 作为构建系统。我有这个任务:
grunt.initConfig({
requirejs: {
compile: {
options: {
baseUrl: "public/js",
mainConfigFile: "public/js/bootstrap.js",
name: 'bootstrap',
out: "build/js/bootstrap.js",
optimize: 'none'
}
}
},
// etc
我没有优化,所以我在输出文件中得到了大约 11k 行代码。
就像我说的。主要问题是:输出文件中没有 AngularJS 代码和应用程序代码。
为什么?我正确设置了 mainConfigFile。问题出在 RequireJS 配置文件中?但是一切都很好,当我在 src 上运行我的应用程序时。