The Module Design Pattern is an integral piece of any robust application and is used to keep units of code cleanly separated and organized. NativeScript has a simple module loading mechanism which strictly follows the CommonJS Specification. Most of the functionality is similar with the Node.js implementation with some minor differences. A typical NativeScript application will use the set of modules which add cross-platform abstraction layer on top of OS-specific APIs.
Following are the differences between Node modules and NativeScript modules:
If the module identifier passed to
require(moduleName) does not begin with '/', '../', or './', then NativeScript will lookup the module within the tns_modules folder. Since there is only one such folder within an application, the lookup will happen only once, unlike in Node which recursively traverses the parent directories as well.
Unlike in Node, NativeScript does not have the notation for Global Modules. Modules are private for the application package. The
require implementation will throw an exception in case a module from the external storage is attempted to be loaded.