在一个文件中创建节点模块<script>



我怎么写我的源文件,使它可以"必需"和<script src="">从一个代码库?

我遇到了一个罕见的功能,在应用程序的两侧都有意义,我希望只维护一个版本。

是否有可能使脚本在双方可用假设它不使用任何平台特定的功能?

脚本:

var myFunc = function(){
};
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined')
  module.exports = myFunc;

现在你可以要求()这个模块或只是包含到你的网页与<script type="text/javascript" src="..."></script>

检查模块是否存在,如果不存在,则使用window。

(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        module.exports = factory();
    } else {
        window.myObj = factory();
    }
}(function (){
    // your code here, return what should be exported.
    var myObj = {foo:"Bar"};
    return myObj;
}));

另外,如果您需要额外的依赖项,您可以将上面的内容更改为:

(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        module.exports = factory(require('somemodule'));
    } else {
        window.myObj = factory(window.somemodule);
    }
}(function (somemodule){
    // your code here, return what should be exported.
    var myObj = {foo:somemodule("Bar")};
    return myObj;
}));

您也可以在客户端使用requirejs,因此,在您的页面上,

通过requirejs()从<script>包含该模块,

最新更新