最近在学习 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 呢