8

我正在使用RequireJS,骨幹樣板與佈局管理器,JamJS來幫助管理包,並且一切工作正常,但是當我嘗試創建帶有連接文件的生產版本時,它不會沒有工作。RequireJS優化器配置問題,bbb版本

它看起來像我的配置shim可能沒有得到加載。例如,我在我的控制檯中得到的錯誤是Uncaught TypeError: Cannot set property 'cookie' of undefined,所以jQuery沒有被加載爲jquery.cookie的依賴項。這裏是我的應用程序配置:

// Set the require.js configuration for your application. 
require.config({ 

    // Initialize the application with the main application file and the JamJS 
    // generated configuration file. 
    deps: ["../vendor/jam/require.config", "main"], 

    paths: { 
    baseUrl : '/', 
    config : "config", 

    // JavaScript folders. 
    api : "libs/api", 
    app : "app", 

    // Libraries. 
    almond : "../vendor/jam/js/libs/almond", 
    engagement : "libs/engagement", 
    environment : "libs/environment", 
    jquery : "../vendor/jam/jquery/jquery", 
    jqueryui : "../vendor/js/libs/jquery-ui-1.9.1.custom.min", 

    "jquery-cookie" : "../vendor/jam/jquery-cookie/jquery.cookie", 

    chosen : "../vendor/js/libs/jquery.chosen.min", 
    colorpicker : "../vendor/js/libs/jquery.colorpicker", 
    bootstrap : "../vendor/js/libs/bootstrap", 
    jqueryuiwidget : "../vendor/js/libs/jquery.ui.widget", 

    jstemplates : "../vendor/js/libs/tmpl", 
    jsloadimage : "../vendor/js/libs/load-image", 
    jscanvastoblob : "../vendor/js/libs/canvas-to-blob", 
    iframetransport : "../vendor/js/libs/jquery.iframe-transport", 
    fileupload : "../vendor/js/libs/jquery.fileupload", 
    fileuploadfp : "../vendor/js/libs/jquery.fileupload-fp", 
    fileuploadui : "../vendor/js/libs/jquery.fileupload-ui", 
    fileuploadlib : "libs/fileupload", 

    highchartsgraytheme : "../vendor/js/libs/gray", 
    highchartsexporter : "../vendor/js/libs/exporting", 

    adpin : "libs/adpin", 

    val : "../vendor/js/libs/jquery.validate.min", 
    valmethods : "../vendor/js/libs/additional-methods.min", 

    advertiser : "libs/advertiser", 
    messages : "libs/messages", 

    user : "libs/user", 
    zeroclipboard : "../vendor/js/libs/zero-clipboard", 

    jqgrid : "../vendor/js/libs/jquery.jqGrid.min", 
    jqgridsource : "../vendor/js/libs/grid.locale-en", 

    reporting : "libs/reporting", 
    adlift : "libs/adlift", 
    utilities : "libs/utilities", 
    qrcode : "../vendor/js/libs/jquery.qrcode.min", 
    base64 : "../vendor/js/libs/base64", 

    kinetic : "../vendor/js/libs/kinetic.min", 
    canvaslib : "libs/canvas", 

    socialstream : "libs/socialstream", 
    analytics : "libs/analytics", 

    classie : "../vendor/js/libs/classie", 

    classie_modernizr : "../vendor/js/libs/modernizr.custom", 

    qtip2 : "../vendor/js/libs/jquery.qtip", 

    sponsored : 'libs/sponsoredcontent', 

    publisher : 'libs/publisher', 

    xml : '../vendor/jam/codemirror3/mode/xml/xml' 
    }, 

    shim: { 

    "jquery-cookie" : { 
     deps : ["jquery"] 
    }, 

    "api" : { 
     deps : ["environment"] 
    }, 

    "xml" : { 
     deps : ["codemirror3"] 
    }, 

    "classie" : { 
     deps : ["classie_modernizr"] 
    }, 

    "jqueryui" : { 
     deps : ["jquery"] 
    }, 

    "colorpicker":{ 
     deps : ["jquery"] 
    }, 

    "jqueryuiwidget" : { 
     deps : ["jquery"] 
    }, 

    "jstemplates" : { 
     deps : ["jquery"] 
    }, 

    "jsloadimage" : { 
     deps : ["jquery"] 
    }, 

    "jscanvastoblob" : { 
     deps : ["jquery"] 
    }, 

    "fileupload" : { 
     deps : ["jquery", "jqueryuiwidget"] 
    }, 

    "fileuploadfp" : { 
     deps : ["jquery", "jscanvastoblob", "fileupload"] 
    }, 

    "fileuploadui" : { 
     deps : ["jquery", "jstemplates", "jsloadimage", "fileuploadfp", "fileuploadlib"] 
    }, 

    "qrcode" : { 
     deps : ["jquery"] 
    }, 

    "base64" : { 
     deps : ["jquery"] 
    }, 

    "highchartsgraytheme" : { 
     deps : ["highcharts"] 
    }, 

    "highchartsexporter" : { 
     deps : ["highcharts"] 
    }, 

    "utilities" : { 
     deps : ["lodash", "jquery", "val"] 
    }, 

    "val" : { 
     deps : ["jquery"] 
    }, 

    "valmethods" : { 
     deps: ["jquery", "val"] 
    }, 

    "zeroclipboard": { 
     deps : ["jquery"] 
    }, 

    "jqgrid" : { 
     deps : ["jquery", "jqgridsource"] 
    }, 

    "jqgridsource" : { 
     deps : ["jquery"] 
    }, 

    "bootstrap" : { 
     deps : ["jquery"] 
    } 
    } 

}); 

以下是我加載了我的require.js文件:

<script data-main="/app/config" src="/dist/debug/require.js"></script> 

上什麼可能會在任何想法?當我使用bbb release時,一切都完成而沒有錯誤來創建該調試文件。

+0

我沒有潛入太深,但乍一看,「jquery-cookie」是唯一一個在名稱周圍有引號的庫。也許這是一個簡單的解決方案? – panzhuli

+0

@ juliep不,這不是問題。引號只保留該對象屬性。我改變它與其他人一樣,以防萬一,仍然是相同的問題 – Evan

+0

已嘗試添加填充jquery? – Blacksonic

回答

3

我有一些建議,這可能聽起來很愚蠢,但由於我沒有手上的文件猜測是我能做的最好的,所以,請確保在您的jquery-cookie文件中沒有:define(["jquery"], ..... ,因爲你應該把它包含在shim中,或者用這個定義,但不能同時包含它,因爲它可能會導致衝突。 如果它工作讓我知道添加一個解釋爲什麼發生這種情況,祝你好運。

+0

這基本上是問題。有定義jquery和我出口的jquery – Evan

+0

衝突與知道它有效:D –

2

埃文,我不確定你的問題到底是什麼。我建議從JamJS開始轉向Bower。誰知道,也許在Jam中的構建被破壞了。

你墊片看起來是正確的,但我想知道如果你有mainConfigFile選項下的requirejs部分在Gruntfile.js文件中設置。

bbb命令已被棄用,因此我會鼓勵你去調查https://github.com/backbone-boilerplate/backbone-boilerplate/wiki/Installation我們的發電機應該很好地滿足您的需求!