Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将require config移动到外部文件_Javascript_Requirejs - Fatal编程技术网

Javascript 将require config移动到外部文件

Javascript 将require config移动到外部文件,javascript,requirejs,Javascript,Requirejs,现在在我的标题中,我有以下代码: <script src="/js/libs/requirejs/requirejs.min.js"></script> <script> require.config({ baseUrl: "/js/libs", paths: { jquery: "jquery/jquery-1.11.1.min", jqueryUi: "jquery-u

现在在我的标题中,我有以下代码:

<script src="/js/libs/requirejs/requirejs.min.js"></script>
<script>
    require.config({
        baseUrl: "/js/libs",
        paths: {
            jquery: "jquery/jquery-1.11.1.min",
            jqueryUi: "jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
            portal: "../dev/portal"
        },
        shim: {
            "jqueryUi": {
                export:"ui" ,
                deps: ['jquery']
            }
        }
    });
    require( ["portal"], function(portal) {
            portal.config={'var': 'value'};
            portal.init();
        }
    );
</script>

require.config({
baseUrl:“/js/libs”,
路径:{
jquery:“jquery/jquery-1.11.1.min”,
jqueryUi:jqueryUi/mapa/js/jquery-ui-1.10.4.custom.min,
门户:“../dev/portal”
},
垫片:{
“jqueryUi”:{
导出:“ui”,
deps:['jquery']
}
}
});
要求([“门户”],功能(门户){
config={'var':'value'};
init();
}
);
我希望使用data main attr以正确的方式执行此操作:

<script data-main="/js/build/req-init" src="/js/libs/requirejs/requirejs.min.js"></script>
<script>
    require( ["portal"], function(portal) {
            portal.config={'var': 'value'};
            portal.init();
        }
    );
</script>

要求([“门户”],功能(门户){
config={'var':'value'};
init();
}
);
并将所有
require.config
移动到该文件(/js/build/req init.js)

问题是它在根目录中搜索
potral.js
文件,因为数据主文件尚未加载,并且不知道路径。如何延迟执行
require([“门户”])

我需要在HTML中使用
portal.init()
,因为
portal.config
-变量将使用php定义。

我在html5应用程序中应用了不同的模式,以将requireJS config移动到外部文件

目录结构

{webroot}/
   html/
   js/
      apps/
          conf.js
          main.js
      libs/
          jquery-1.11.1.min.js
          ...
。/js/app/conf.js

var require = {
    baseUrl: "../js",
    paths: {
        app:      "../js/app",
        libs:     "../js/libs",
        jquery:   "libs/jquery/jquery-1.11.1.min",
        jqueryUi: "libs/jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal:   "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
});
require( ["portal"], function(portal) {
        portal.config={'var': 'value'};
        portal.init();
    }
);
。/js/app/main.js

var require = {
    baseUrl: "../js",
    paths: {
        app:      "../js/app",
        libs:     "../js/libs",
        jquery:   "libs/jquery/jquery-1.11.1.min",
        jqueryUi: "libs/jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal:   "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
});
require( ["portal"], function(portal) {
        portal.config={'var': 'value'};
        portal.init();
    }
);
内部html

<scrip src="/js/app/conf.js"></script>
<script data-main="app/main" src="/js/libs/requirejs/requirejs.min.js"></script>

我已经在我们的html5应用程序中应用了一种不同的模式,将requireJS配置移动到外部文件

目录结构

{webroot}/
   html/
   js/
      apps/
          conf.js
          main.js
      libs/
          jquery-1.11.1.min.js
          ...
。/js/app/conf.js

var require = {
    baseUrl: "../js",
    paths: {
        app:      "../js/app",
        libs:     "../js/libs",
        jquery:   "libs/jquery/jquery-1.11.1.min",
        jqueryUi: "libs/jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal:   "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
});
require( ["portal"], function(portal) {
        portal.config={'var': 'value'};
        portal.init();
    }
);
。/js/app/main.js

var require = {
    baseUrl: "../js",
    paths: {
        app:      "../js/app",
        libs:     "../js/libs",
        jquery:   "libs/jquery/jquery-1.11.1.min",
        jqueryUi: "libs/jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal:   "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
});
require( ["portal"], function(portal) {
        portal.config={'var': 'value'};
        portal.init();
    }
);
内部html

<scrip src="/js/app/conf.js"></script>
<script data-main="app/main" src="/js/libs/requirejs/requirejs.min.js"></script>

诀窍是以稍微不同的格式使用配置,并在主脚本之前加载它。这是在所有情况下加载“外部”配置真正可靠的唯一方法:

config.js:

var require = {
    baseUrl: "/js/libs",
    paths: {
        jquery: "jquery/jquery-1.11.1.min",
        jqueryUi: "jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal: "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
};
req-init.js

require( ["portal"], function(portal) {
  portal.config={'var': 'value'};
  portal.init();
});
html:



为了进一步优化(因为我看到您有一个构建文件夹),我将把config.js与requirejs.min.js(在require之前配置)连接起来,以丢失一个请求。诀窍是以稍微不同的格式使用您的配置,并在主脚本之前加载它。这是在所有情况下加载“外部”配置真正可靠的唯一方法:

config.js:

var require = {
    baseUrl: "/js/libs",
    paths: {
        jquery: "jquery/jquery-1.11.1.min",
        jqueryUi: "jquery-ui/mapa/js/jquery-ui-1.10.4.custom.min",
        portal: "../dev/portal"
    },
    shim: {
        "jqueryUi": {
            export:"ui" ,
            deps: ['jquery']
        }
    }
};
req-init.js

require( ["portal"], function(portal) {
  portal.config={'var': 'value'};
  portal.init();
});
html:



为了进一步优化(因为我看到您有一个构建文件夹),我会将config.js与requirejs.min.js(在require之前配置)连接起来,以丢失一个请求

如果conf.js中已经使用require,然后加载requirejs.min.js,那么这是如何工作的呢?对不起,我在conf.js中调用require(conf)时出错了。我已经修好了。根据文档(配置选项:),您可以在require.js加载之前将config对象定义为全局变量require。哦,好吧,这一点我们并不同意:)如果require已经在conf.js中使用,然后requirejs.min.js被加载,那么这如何工作?对不起,我在conf.js中调用require(conf)时出错了。我已经修好了。根据文档(配置选项:),您可以在加载require.js之前将config对象定义为全局变量require。哦,好吧,我们不同意这个:)