因此,在我的库文件中,我声明了以下内容:

(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/

10-11 21:37