2013-03-20 26 views

回答

2

如果text.js庫是AMD兼容(出口一define聲明包裝的功能),你可以使用你的模塊define存根的完整路徑:

// yourmodule.js 
define(['/app/some/path/here/to/text-version.js'], function(text) { 
    // etc 
}); 

此處詳細瞭解AMD模塊定義:http://requirejs.org/docs/whyamd.html#amd

否則,你將需要墊片庫在主RequireJS配置腳本:

// main.js 
require.config({ 
    paths: { 
    text: '/app/some/path/here/to/text-version.js' 
    }, 

    shim: { 
    text : { 
     exports : 'text' 
    } 
    } 
}); 

// yourmodule.js 
define(['text'], function(text) { 
    // etc 
}); 

閱讀更多關於RequireJS墊片在這裏:http://requirejs.org/docs/api.html#config-shim

+0

+1優秀的答案。清晰和簡潔。 – 2013-03-20 01:29:51

+0

我不知道它如何幫助我。 shim是否會覆蓋'text!'行爲? – 2013-03-20 01:41:53

+0

啊,好吧 - 我現在看到墊片是如何工作的,謝謝! – 2013-03-20 01:49:06

0

我剛剛發現雖然RequireJS在插件中自動加載,但它本質上是調用require('text', function (text) { /* ... */ })。這意味着配置任何RequireJS插件的路徑實際上非常簡單 - 只需更改require.config()中的路徑即可。

/** 
* main.js 
*/ 
require.config({ 
    baseUrl: '/lib/js/', 

    paths: { 
     text: 'require/plugins/text' 
    } 
}); 

現在,當你需要模塊中的插件時,例如

/** 
* myModule.js 
*/ 
define([ 'text!/lib/css/stylesheet.css' ], function() { 
    // ... 
}); 

RequireJS會弄清楚在/lib/js/require/plugins/text.js加載文本插件。

相關問題