Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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 Requirejs多页&;多应用程序未执行定义回调_Javascript_Requirejs_Build Process_Minify_R.js - Fatal编程技术网

Javascript Requirejs多页&;多应用程序未执行定义回调

Javascript Requirejs多页&;多应用程序未执行定义回调,javascript,requirejs,build-process,minify,r.js,Javascript,Requirejs,Build Process,Minify,R.js,我有一个多页/多个应用程序缩小,我正在努力使工作 结构如下 common/ --main config file that defines the common libs common/build --app.build.js (see example below) application1/ --application --milion other files application2/ --application --thousand other files 这将放置在页面的页眉中 这

我有一个多页/多个应用程序缩小,我正在努力使工作

结构如下

common/
--main config file that defines the common libs
common/build
--app.build.js (see example below)

application1/
--application
--milion other files

application2/
--application
--thousand other files
这将放置在页面的页眉中

这工作非常完美,并生成一个可爱的global.min.js。挑战在于它不会对define调用执行回调,我将其包括在内,如下所示:

这将放置在页面的页眉中


像这样的页脚

<script>require(['../application1/application']);</script>
<script>require(['../application2/application']);</script>
<script>require(['../common/global.min']);</script>
require(['../common/global.min']);
但是:如果我在这样的地方保留旧的要求:

<script>require(['../application1/application']);</script>
<script>require(['../application2/application']);</script>
require(['../application1/application']);
需要(['../application2/application']);
它下载3个文件

  • common/global.min.js
  • application1/application.js
  • application2/application.js
注意:此时它缺少大约150个文件,但应用程序工作正常

在这个问题上花了很长时间,我的脑袋现在已经完全崩溃了,我不知道如何从一个缩小的文件中工作


我尽了最大的努力,非常感谢您的帮助。很高兴分享所有的文件,尽管有很多;-)

这是一个有根据的猜测,基于您在问题中所展示的内容以及对RequireJS故障模式的体验。我猜
“/common/global.min”
不是模块名。(如果要检查此项,请打开优化包并查看所有
定义
调用。如果发现它们都没有
“/common/global.min”
,则它不是模块名称。)

当您需要
“/common/global.min”
时,RequireJS将加载相应的文件,然后在其中查找名为
“/common/global.min”
的模块。它找不到,并且您的代码无法运行

解决此问题的一种方法是将RequireJS配置与映射名称的优化包一起使用,如下所示:

paths: {
    '../application1/application': './common/global.min'
    '../application2/application': './common/global.min'
}
并使用这些模块名调用
require
,而不是
“/common/global.min”
。此配置告诉RequireJS“当您查找这些模块时,请查看该文件:它们就在那里”,而这正是优化过程所做的

<script>require(['../common/global.min']);</script>
<script>require(['../application1/application']);</script>
<script>require(['../application2/application']);</script>
paths: {
    '../application1/application': './common/global.min'
    '../application2/application': './common/global.min'
}