因此,在我的库文件中,我声明了以下内容:
(function(mylib){
"use strict";
mylib.funcA = function () {return "A"};
mylib.funcB = function () {return "B"};
})(typeof mylib == "undefined" ? (this["mylib"]={}) : mylib);
//我一直在使用这样的东西,它可以在我可以使用的浏览器中使用
<script src="mylib.js"></script>
<script>
console.log(mylib.funcA()); // outputs "A"
console.log(mylib.funcB()); // outputs "B"
</script>
//并且在nodejs中,我可以使用
mylib = require("mylib.js")["mylib"];
console.log(mylib.funcA()); // outputs "A"
console.log(mylib.funcB()); // outputs "B"
但是我只想有一个包装器方法,我可以让用户正确地声明该库并在所有常见的js版本中工作。
我已经在堆栈溢出问题上看到了几种不同的答案,但是没有人提供一个简单的示例说明如何做到这一点。帮助赞赏!
最佳答案
您需要一个UMD模块。
UMD标准存储库中有一个可以满足您的需求:https://github.com/umdjs/umd/blob/master/templates/returnExports.js
Nore信息和更多模板在这里:https://github.com/umdjs/umd
关于javascript - 声明可在nodejs,浏览器,commonJS和AMD中工作的javascript独立库的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51453367/