As I understand it, *almost* all NPM packages (i.e. listed on npmjs.org) work like a charm inside a browser, using a loader such as Require.js. But obviously some features of NPM packages (for example, accessing the OS filesystem) cannot be used inside the browser, which I assume results in ungraceful errors if it's attempted.

1. How correct is my understanding?
2. Are there any ways of finding out exactly which methods inside an NPM package will work in the browser and which won't?