Rails Rails with Requirejs

hiveer · 2014年06月19日 · 2135 次阅读

最近在学习 Requirejs,在测试的时候遇到一个奇特的问题,希望大家能给点建议或意见。(时间比较晚了,先贴个链接,明天补上详情) http://stackoverflow.com/questions/24310870/requirejs-rails-error-with-default-top-level-module

根据默认设置,用 application.js 作为入口 requiejs.yml

shim: 
 'jquery.slides': ['jquery'] 
 'scroll.top'   : ['jquery']
 'countDown'   : ['jquery']
modules:
  - name: 'application'

application.js

require(['jquery', 'scroll.top'], function($) {
  return console.log("require");
});

然后在浏览器测试,结果似乎是将‘jquery’和‘scroll.top’打包‘/assets/application.js’文件中了,并且并没有在 console log 输出任务东西,scroll 的效果也没得

<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="application" src="/assets/application.js"></script>

/*!
* jQuery JavaScript Library v1.11.0
* http://jquery.com/
*
* Includes Sizzle.js
* http://sizzlejs.com/
*
* Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors
* Released under the MIT license
* http://jquery.org/license
*
* Date: 2014-01-23T21:02Z
*/

/*!
 * Sizzle CSS Selector Engine v1.10.16
 * http://sizzlejs.com/
 *
 * Copyright 2013 jQuery Foundation, Inc. and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 *
 * Date: 2014-01-13
 */

(function(e,t){typeof module=="object"&&typeof module.exports=="object"?.......

然后另外新加一个 module

modules:
  - name: 'application'
  - name: 'app'

然后,将 app 作为入口,代码一样

require(['scroll.top', 'jquery'], function($) {
  return console.log("require");
});

测试后结果是‘jquery‘和’scroll.top‘是分开加载的

<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="/assets/jquery.js"></script>
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="scroll.top" src="/assets/scroll.top.js"></script>

日志和功能都正常,我想问的是为什么我不能用默认的 application 呢

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号