Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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无序执行-不尊重'require'的论点`_Javascript_Requirejs_Js Amd - Fatal编程技术网

Javascript RequireJS无序执行-不尊重'require'的论点`

Javascript RequireJS无序执行-不尊重'require'的论点`,javascript,requirejs,js-amd,Javascript,Requirejs,Js Amd,当以我理解为普通的方式使用CoffeeScript构建和运行RequireJS时,我似乎遇到了一个问题,代码没有按照预期的顺序执行 <script src="/_s/lib/require-jquery.js"></script> <script> require.config({ paths: { "main": "/_s/all.min", // <--- the 'optimized' result of `$ r.js b

当以我理解为普通的方式使用CoffeeScript构建和运行RequireJS时,我似乎遇到了一个问题,代码没有按照预期的顺序执行

<script src="/_s/lib/require-jquery.js"></script>
<script>
  require.config({
    paths: {
      "main": "/_s/all.min", // <--- the 'optimized' result of `$ r.js build.js`
    }
  });
  require(["main"], function () {
     // this executes without any regard to whether 'main' is loaded.
     // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     // also:
     // require('cs!csmain') throws an exception because "cs!csmain" has not been
     // loaded for context: '_'.
  });
以及作为
r.js
参数调用的
build.js
,如下所示:

({
    baseUrl:    'mycode',
    optimize:   'none',
    out:        'all.min.js',
    stubModules: ['cs', 'coffee-script'],
    paths: {
        ...
        underscore: '../lib/lodash'
    },
    name: 'main',
    shim: {
       ...
    }
})
有人知道这里发生了什么吗?我真的很享受RequireJS的异步特性,以及将代码拆分为合理模块的能力,但这个问题尤其令人沮丧,因为它只在登台/生产设置中出现

如有任何想法和建议,将不胜感激


EDIT:删除了一些可能多余的参数以缩短问题。

我相信我已经解决了这个问题-
main.js
应该包含对
define
的调用,就像我一样。

Brian,您是否在某个网站上发布了此代码,以便我们可以尝试调试以查看发生了什么?因为查看您的配置,我没有发现任何错误,可能正在调试…@devundef:谢谢您的评论。我觉得代码看起来也不错。:)经过几个小时的调试,我只是把问题缩小到上面。我可以尝试在JSFIDLE中重现这个问题,但需要休息一下,这样我才不会先发疯有时代码会让我们发疯,不是吗?:)好吧,如果你能重现JSFIDLE中的错误,那就更好了。@devundef:根据我下面的回答,我有可能解决了这个问题。祈求好运。哇,我总是在我的主模块中使用require,而这个问题从未发生过。但是使用define()而不是require()更有意义。请告诉我这是否解决了。@devundef:我总是在我的主要模块中加入
require
——我认为这就是解决问题的方法(我隐约记得
define
在某些情况下在
main.js
中存在问题)。我期待着发现我所做的是否真的是“正确”的解决方案。
({
    baseUrl:    'mycode',
    optimize:   'none',
    out:        'all.min.js',
    stubModules: ['cs', 'coffee-script'],
    paths: {
        ...
        underscore: '../lib/lodash'
    },
    name: 'main',
    shim: {
       ...
    }
})