簡體   English   中英

在瀏覽器中進行優化后,requirejs r.js錯誤

[英]requirejs r.js errors after optimization in browser

使用r.js優化后,我正在努力讓requirejs正常工作。

瀏覽器錯誤:

main.js:71未捕獲的ReferenceError:未定義jQuery

在包含的插件mCustomScrollbar中到main.js

工廠(jQuery,window,document);

file:///home/atm/public/www-build/js/jquery.mCustomScrollbar.js net :: ERR_FILE_NOT_FOUND require.js:2未捕獲的錯誤:“ mCustomScrollbar”的腳本錯誤http://requirejs.org/docs/ errors.html#scripterror

的HTML:

<script data-main="js/main" src="js/require.js"></script>
<script>
    require(['main'],function(){
      require(['page/page1']);
    });
</script>

main.js配置文件:

require.config({
    baseUrl: 'js/',
    paths : {
        page: 'page',

        'jquery' : ['https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min',
                    'jquery-2.2.1.min'],
        'mCustomScrollbar' : 'jquery.mCustomScrollbar',
        'jquery-mousewheel' : 'jquery.mousewheel.min'
    }, 
    shim : {
        'mCustomScrollbar' : {
                                deps : ['jquery','jquery-mousewheel']
                            }
    }
});

page1.js

define(['jquery','mCustomScrollbar'], function($){
    $(document).ready(function () { 
        $("#content-3").mCustomScrollbar({
            scrollButtons:{enable:true},
            theme:"dark-thick"
        }); 
    }); 
});

build.js配置

({
    appDir: "../www",
    baseUrl: 'js/', // relative to appDir
    dir: "../www-build",
    mainconfigfile: '../www/js/main.js',
    modules: [
        {
            name: "main",
            include: ['jquery','mCustomScrollbar']
        },
        {
            name: 'page/page1',
            include: ['page/page1'],
            exclude: ['main']
        }
    ],
    paths: {
        'jquery': "empty:",
        'mCustomScrollbar' : 'jquery.mCustomScrollbar',
        'jquery-mousewheel' : 'jquery.mousewheel.min'
    },
    shim : {
        'mCustomScrollbar' : { deps : ['jquery','jquery-mousewheel'] }
    },
    optimize: "none",
    optimizeCss: "standard",
    removeCombined: true
})

main.js:71未捕獲的ReferenceError:未定義jQuery

這可能是因為jquery-mousewheeljquery之前加載的。 您可以像這樣嘗試為jquery-mousewheel配置依賴項

shim : {
    'mCustomScrollbar' : {
        deps : ['jquery','jquery-mousewheel']
    },
    'jquery-mousewheel' : { 
        deps : ['jquery']
    }
}

我發現里面的腳本評論:

* load jquery-mousewheel plugin (via CDN) if it's not present or not loaded via RequireJS (works when * load jquery-mousewheel plugin (via CDN) if it's not present or not loaded via RequireJS 

也許是用一個文件優化js文件的問題

好的,現在可以正常工作了,我解決了這個問題,將其包含在插件mCustomScrollbar中

 define ([ 'jquery', 'jquery-mouseWheel'], function () { 
    'inside code plugin mCustomScrollbar '  
 )};

現在所有文件庫和插件只有一個文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM