我正在尝试使用 grunt 缩小我的 requirejs 应用程序,它输出所有缩小的文件,我的 main.js 获取所有使用的脚本等......我从定义公用文件夹的级别运行 grunt
但是当我尝试运行优化的主 js 文件时它不起作用并说没有为我的“kinvey”模块定义 Backbone.. (//da189i1jfloii.cloudfront.net/js/kinvey-backbone-1.1.6.min .js)请帮助我搜索了几个小时,但它不起作用!
目录布局:
public
- js
- libs (all libraries i use)
- folders / containing modules
- main.js
- app.js
- img ...
主.js:
require.config
(
{
paths : {
'jquery' : 'libs/jquery-1.10.1.min',
'backbone' : 'libs/backbone.min', // -1.1.2 amd
'underscore' : 'libs/underscore-1.6.0.min',
'kinvey' : 'libs/kinvey-backbone-1.1.6.min' // amd
},
shim : {
'underscore' : {
exports : '_'
},
'backbone' : {
exports : 'Backbone',
deps : ['jquery','underscore']
},
'kinvey' : {
deps: ['backbone','underscore'],
//exports: 'Kinvey',
}
},
//deps : ['jquery','underscore']
}
);
require
(
['backbone', 'kinvey', 'app'],
function(Backbone, Kinvey, Application)
{
'use strict';
var init = Kinvey.init({ appKey: '...', appSecret : '..'});
init.then(function(activeUser)
{
if (!activeUser)
{
window.location = '/login';
}
else
{
Application.start();
}
}, function(error) {
alert("Something went wrong.. Please try again.");
window.location = '/home';
});
}
);
咕噜声文件包含:
mainConfigFile: "public/js/main.js",
modules: [
{
name: 'main',
include: ['backbone',
'kinvey',
'app']
}
],
//name: "libs/almond", // node_modules/almond/almond.js
//wrap: true,
optimize : 'none',
dir: "release",
由于某种原因,输出文件包含主干模块,然后在其下方是kinvey代码..但是由于某种原因,当kinvey代码运行时Backbone不存在,但它需要,因为它依赖于它(就像我在配置中所做的那样)。
未优化时确实可以正常工作!
请帮助我我一无所知..