Javascript amd与咖啡脚本
我正在为AMD开发Javascript amd与咖啡脚本,javascript,coffeescript,amd,Javascript,Coffeescript,Amd,我正在为AMD开发coffeescript和require.js的组合 问题是,我必须为require.js加载的每个模块返回一个值,我这样做了。但是coffeescript帮了我的忙并附加了:(function(){和})。这违反了我的准则 main.js require.config( { paths: { 'backbone': 'libs/AMDbackbone-0.5.3', 'underscore': 'libs/u
coffeescript
和require.js
的组合
问题是,我必须为require.js
加载的每个模块返回一个值,我这样做了。但是coffeescript帮了我的忙并附加了:(function(){
和})代码>。这违反了我的准则
main.js
require.config( {
paths: {
'backbone': 'libs/AMDbackbone-0.5.3',
'underscore': 'libs/underscore-1.2.2',
'text': 'libs/require/text',
'jquery': 'libs/jquery-1.7.1',
},
baseUrl: '/app'
} );
require(
['require', 'backbone', 'jquery', 'underscore' ],
function( require, Backbone, $, _ ) {
// framework loaded
require(
['require', 'app'],
function( require, app) {
return {};
} );
} );
define( [
'jquery',
'underscore',
'backbone',
'views/gameview',
], function( $, _, Backbone, GameView, ) {
"use strict";
window.app = {};
$(function(){
var app = window.app = _.extend({
views: {
GameView: new GameView
},
//code..
}, window.app);
//code...
return window.app;
} );
(function() {
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
}).call(this);
app.js
require.config( {
paths: {
'backbone': 'libs/AMDbackbone-0.5.3',
'underscore': 'libs/underscore-1.2.2',
'text': 'libs/require/text',
'jquery': 'libs/jquery-1.7.1',
},
baseUrl: '/app'
} );
require(
['require', 'backbone', 'jquery', 'underscore' ],
function( require, Backbone, $, _ ) {
// framework loaded
require(
['require', 'app'],
function( require, app) {
return {};
} );
} );
define( [
'jquery',
'underscore',
'backbone',
'views/gameview',
], function( $, _, Backbone, GameView, ) {
"use strict";
window.app = {};
$(function(){
var app = window.app = _.extend({
views: {
GameView: new GameView
},
//code..
}, window.app);
//code...
return window.app;
} );
(function() {
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
}).call(this);
和咖啡脚本:
/views/gameview.coffee
define ["jquery", "underscore", "backbone"], ($, _, Backbone, RankView) ->
"use strict"
GameView = Backbone.View.extend()
GameView
也就是说:
/views/gameview.js
require.config( {
paths: {
'backbone': 'libs/AMDbackbone-0.5.3',
'underscore': 'libs/underscore-1.2.2',
'text': 'libs/require/text',
'jquery': 'libs/jquery-1.7.1',
},
baseUrl: '/app'
} );
require(
['require', 'backbone', 'jquery', 'underscore' ],
function( require, Backbone, $, _ ) {
// framework loaded
require(
['require', 'app'],
function( require, app) {
return {};
} );
} );
define( [
'jquery',
'underscore',
'backbone',
'views/gameview',
], function( $, _, Backbone, GameView, ) {
"use strict";
window.app = {};
$(function(){
var app = window.app = _.extend({
views: {
GameView: new GameView
},
//code..
}, window.app);
//code...
return window.app;
} );
(function() {
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
}).call(this);
但我想翻译成:
define(["jquery", "underscore", "backbone"], function($, _, Backbone) {
"use strict";
var GameView;
GameView = Backbone.View.extend({...});
return GameView;
});
最好在控制台中使用它:var GameView=new app.views.GameView代码>在控制台中
如何强制coffeescript编译器不这样做?有旗子或其他东西吗
再次:我只想切断(function(){
和})代码>-背后的amd代码不是很重要吗,不管是全球还是全球
谢谢您可以在编译咖啡文件时使用--bare
标志:
-b
,-bare
在不使用顶级函数安全包装的情况下编译JavaScript
为什么它不起作用?您的代码不依赖于在全局范围内执行,是吗?我认为这将回答您的问题@Bergi Yes,确实如此。目前不是一个好的解决方案,但我以后还需要通过控制台进行调试。-最好尝试使用require.js垫片then@vittore-不,没有。我只需要切断(function(){
和})代码>没有任何代理或其他服务器端技术。