Requirejs 如何正确地包含每页的脚本

Requirejs 如何正确地包含每页的脚本,requirejs,Requirejs,我的所有页面都使用许多共享脚本,比如jquery和其他框架 但是有些页面只有一个脚本文件用于该页面。例如:Index.html将有一个相应的Index.js文件 我最初的想法是这样做: <script data-main="script/includes" src="./script/require.js"></script> <script type="text/javascript" src="./escript/index.js"></scri

我的所有页面都使用许多共享脚本,比如jquery和其他框架

但是有些页面只有一个脚本文件用于该页面。例如:Index.html将有一个相应的Index.js文件

我最初的想法是这样做:

 <script data-main="script/includes" src="./script/require.js"></script>
 <script type="text/javascript" src="./escript/index.js"></script>

但在这种情况下,我认为index.js在require之前加载已经完成了它的工作,所以这对我没有帮助

我想做的是加载所有共享的东西,然后加载页面特定的东西


应该如何做到这一点?

您可以将requirejs配置添加到启动或应用程序文件中,如下所示

requirejs.config({
    paths: {
        "jquery": "jquery-1.10.2",
        "jquery-ui": "jquery-ui-1.11.4",
        "General": "General",
        "knockout": "knockout-3.4.0.debug",
        "komapping": "knockout.mapping-latest.debug",
        "modernizr": "modernizr-2.8.3",
        "respond": "respond",
        "underscore": "underscore",
        "datatable": "DataTables/jquery.dataTables",
        "bootstrap": "bootstrap",
        "bootstrap-dialog": "bootstrap-dialog",
        "bootstrap-datepicker": "bootstrap-datepicker"
    },
    shim: {
        "jquery.appender": ["jquery"],
        "jquery.textReplacer": ["jquery"],
        "jquery-ui": {
            "deps": ["jquery"],
            "exports": "$"
        },
        "bootstrap-responsive": {
            "deps": ["bootstrap", "respond"],
            "exports": "bootstrap-responsive"
        },
        "komapping": {
            "deps": ["knockout"],
            "exports": "komapping"
        },
        "bootstrap": {
            "deps": ["jquery"],
            "exports": "bootstrap"
        },
        "bootstrap-dialog": {
            "deps": ["bootstrap", "jquery"],
            "exports": "bootstrap-dialog"
        }
    }
});
您可以创建单独的文件并在requirejs之后包含,如下所示

    <script src="./Scripts/app.js"></script>
define(['jquery', 'knockout', 'pagespecific path', "knockout-delegatedEvents"],
function ($, ko, viewmodel,koevent) {
    $(function () {

    });
});