2014-09-02 108 views
0

我有一個提線木偶的項目,我有我的主要js文件,它看起來像:包括JavaScript文件木偶項目

define(["marionette", "handlebars"], function(Marionette, Handlebars){ 
    ... 
}); 

現在我想讓我的大應用程序的結構。所以我想分開這個功能的內容到不同的文件。所以我怎麼能做這樣的事情:

define(["marionette", "handlebars"], function(Marionette, Handlebars){ 
    include routes.js 
    include menu/model.js 
    include menu/views.js 
    ... 
}); 

我認爲require.js可以幫助我,但我不知道如何。有任何想法嗎?

回答

2

要在AMD結構中需要一個文件(如您所描述的那樣),您可以給出數組中文件的路徑,並將導出的值作爲回調的參數,如下所示。

define(
    [ 
    "marionette", 
    "handlebars", 
    "routes", 
    "menu/model", 
    "menu/views" 
    ], 
    function(Marionette, Handlebars, Routes, Model, MenuView){ 
    // ... 
}); 

由於這是AMD一個非常基本的東西,你真的應該讀Require.JS的(here)約AMD模塊(如this one)的文件和解釋。你會發現很多關於AMD結構的信息等。

+0

好的。快速響應非常感謝。如果我有〜100/200個這樣的文件,是否有辦法讓這些文件更短? – alexarsh 2014-09-02 08:46:29

+1

從我的角度來看,它不適用於只包含模塊所需的AMD結構。 – gaelgillard 2014-09-02 08:56:12

-1

如果你願意,browserify可以讓你使用require語法加載前端JavaScript模塊。它看起來像這樣。

// library includes 
var Marionette = require('backbone.marionette'); 
var handlebars = require('handlebars'); 

// custom includes 
var routes = require('./routes.js'); 
var models = require('./menu/models.js'); 
var views = require('./menu/views.js'); 


var App = new Marionette.Application(); 

它包括遞歸模塊,代碼少。它實現了Common.js格式,因此它的外觀和感覺與node.js相同。