Backbone.js Grunt需要优化-未定义主干
我已经构建了一个木偶/Requirejs应用程序,并试图对其进行优化。一旦在浏览器中编译和测试,我会得到一个错误“主干未定义” 编辑 我了解到,从require项目中创建mainconfifile=my main.js文件可以解决这些类型的问题,尽管当我尝试添加该文件并从gruntfile中删除所有路径信息时,我得到了一个grunt编译错误,即我的main.js文件不是有效的JSON 结束编辑 这是我的gruntfile.js requirejs配置:Backbone.js Grunt需要优化-未定义主干,backbone.js,requirejs,gruntjs,marionette,Backbone.js,Requirejs,Gruntjs,Marionette,我已经构建了一个木偶/Requirejs应用程序,并试图对其进行优化。一旦在浏览器中编译和测试,我会得到一个错误“主干未定义” 编辑 我了解到,从require项目中创建mainconfifile=my main.js文件可以解决这些类型的问题,尽管当我尝试添加该文件并从gruntfile中删除所有路径信息时,我得到了一个grunt编译错误,即我的main.js文件不是有效的JSON 结束编辑 这是我的gruntfile.js requirejs配置: requirejs: { co
requirejs: {
compile: {
options: {
baseUrl: "scripts",
paths: {
requireLib: 'lib/require',
templates: '../templates',
underscore: 'lib/underscore',
backbone: 'lib/backbone',
jquery: 'lib/jquery',
backbonevalidation: 'lib/backbone-validation',
marionette: 'lib/backbone.marionette',
json2: 'lib/json2',
text: 'lib/text',
errorlogger: 'lib/errorlogger',
moment: 'lib/moment.min',
glossary: 'lib/glossary',
facebook: '//connect.facebook.net/en_US/all',
"codebird": 'lib/codebird',
"cryptojs": 'lib/md5',
jquerySteps: 'lib/jquery.steps',
JQValidate: 'lib/jquery.validate.min',
numeral: 'lib/numeral',
async: 'lib/async',
homeloanAmort: 'lib/homeloanamortisation',
financial: 'lib/financial',
bonds: 'lib/finance/bonds',
common: 'lib/finance/common',
daycountbasis: 'lib/finance/daycountbasis',
depreciation: 'lib/finance/depreciation',
irr: 'lib/finance/irr',
loan: 'lib/finance/loan',
misc: 'lib/finance/misc',
oddbonds: 'lib/finance/oddbonds',
tbill: 'lib/finance/tbill',
tvm: 'lib/finance/tvm',
retirementneeds: 'lib/retirementneeds',
numeral: 'lib/numeral',
carloanamortisation: 'lib/carloanamortisation',
carleasebuy: 'lib/carleasevsbuy',
cookie: 'lib/jquery.cookie',
homerentvsbuy: 'lib/homerentvsbuy',
"JQstorageapi": 'lib/jquery.storageapi.min',
regiontransitions: 'lib/region-transitions'
},
shim : {
underscore: {
exports: '_'
},
backbone: {
deps: ['underscore', 'jquery'],
exports: 'Backbone'
},
backbonevalidation: {
deps: ['backbone'],
exports: 'Backbone'
},
marionette: {
deps: ['jquery', 'underscore', 'backbone'],
exports: 'Marionette'
},
errorlogger: {
deps: ['jquery']
},
numeral: {
exports: "numeral"
},
jquerySteps: {
deps: ["jquery"],
exports: "Steps"
},
JQValidate: {
deps: ["jquery"],
exports: "JQValidate"
},
JQstorageapi: {
deps: ["jquery"],
exports: "JQstorageapi"
},
facebook: {
exports: 'FB'
},
cryptojs: {
exports: 'CryptoJS'
},
financial: {
deps: ['bonds','common','daycountbasis','depreciation','irr','loan','misc','oddbonds','tbill','tvm'],
exports :'financial'
}
},
baseUrl : "scripts",
name: "main",
out: "optimised/js/main.min.js",
removeCombined: true,
include: ["requireLib", 'main.js'],
out: "optimised/js/main.min.js",
findNestedDependencies: true
}
}
},
我在某个地方出了问题,经过一些搜索,我知道这和垫片、路径和使用AMD模块有关。任何方向都将不胜感激。在这里找到了答案:
解决方案
将wrapshem:true,
添加到gruntfile需要配置解决它