Question: How can I write my source file so that it can be "required" and `<script src="">` from one code base?

I have hit a rare function that makes sense on both side of the app and would like to only maintain one version.

Is it possible to make a script be usable on both sides assuming it does not use any platform specific functions?

Answer: 
The script itself:

```
var myFunc = function(){
};

if (typeof module !== 'undefined' && typeof module.exports !== 'undefined')
  module.exports = myFunc;

```

Now you can either require() this module or just include it into your web-page with `<script type="text/javascript" src="..."></script>`
Check for module to exist, and if it doesn't, use window instead.

```
(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;
}));

```

Additionally, if you need to require in additional dependencies, you could change the above to this:

```
(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;
}));

```