0
可以說'我有一個樣本庫拆分爲2個文件:基礎庫和附加模塊。基本模塊駐留在module.js
:如何爲(子)模塊提供node.js和瀏覽器支持
var Calculator = {
add: function(a, b) { return a + b; },
sub: function(a, b) { return a - b; }
};
附加模塊位於submodule.js
:
if (typeof Calculator == "undefined") {
var Calculator = {};
}
Calculator.mul = function(a, b) { return a * b; };
Calculator.div = function(a, b) { return a/b; };
這是庫有多少JS內置(主模塊+子模塊),雖然可能他們配置好多了。我已經準備了一個基本的index.html
文件:
Calculator.add(3,4)
7
Calculator.sub(3,4)
-1
Calculator.mul(3,4)
12
Calculator.div(3,4)
0.75
這是所有的庫做什麼:
<html>
<head>
<script type="text/javascript" src="module.js"></script>
<script type="text/javascript" src="submodule.js"></script>
</head>
<body>
</body>
</html>
加載磁帶庫和使我能夠執行它的瀏覽器(以下控制檯輸出)內
。現在我想提供對node.js的支持(不支持瀏覽器)。我已經用立即調用的fun-expr中的定義包含了一個根參數,該參數在運行時計算得出:節點的module.exports
(如果存在)或this==window
(瀏覽器)。代碼如下所示:
(function(root) {
root.Calculator = {
add: function(a, b) { return a + b; },
sub: function(a, b) { return a - b; }
};
}(typeof module == 'undefined' ? this : module.exports));
當我運行節點,我可以導入模塊:
> var c = require('./module.js')
undefined
> c
{ Calculator: { add: [Function], sub: [Function] } }
,但我能做些什麼來導入子模塊?
你可能會發現[UMD有趣](https://github.com/umdjs/umd)。 – Andy
@安迪感謝您的鏈接,情況就是如此。無論如何,我想我仍然需要一些關於如何使用它的建議。我想我需要的是'nodeAdapter.js'(最後我需要node.js和requireJS支持) – ducin