2014-02-19 47 views
1

我按照http://requirejs.org/docs/api.html#packages瞭解RequireJs如何加載CommonJS模塊,但我無法得到它。requirejs如何加載commonjs包?

我有以下文件。

富/ foo.js main.js require.js

富/ foo.js的內容:

exports.bar = '1234'; 
exports.xyz = function noop() {}; 

main.js:

requirejs.config({ 
    packages: [{name:'foo', main: 'foo'}] 
}); 

require(['foo'], function(foo) { 
    console.log(foo.bar); 
}); 

它說可以沒有定義的條形碼

回答

0

你錯過了文件的重要部分塔季翁在你的問題鏈接:

雖然包可以有CommonJS的目錄佈局,模塊本身應該是一個模塊格式RequireJS可以理解。規則的例外:如果您使用的是r.js節點適配器,則模塊可以採用傳統的CommonJS模塊格式。如果您需要將傳統CommonJS模塊轉換爲RequireJS使用的異步模塊格式,則可以使用CommonJS轉換器工具。

(着重號。)

這是不是一件RequireJS理解:

exports.bar = '1234'; 
exports.xyz = function noop() {}; 

它必須是:

define(function(require, exports, module) { 
    exports.bar = '1234'; 
    exports.xyz = function noop() {}; 
}); 

要麼你做這種轉換手動或您使用r.js -convert爲您進行轉換。