subprojects

Simple management tool for dependent subprojects in Node.js environment.


Keywords
subproject, require, module, dependent, dependency, local, management, project
License
Unlicense
Install
npm install subprojects@1.0.0

Documentation

Subprojects

Simple management tool for dependent subprojects in Node.js environment.

Installation

$ npm install subprojects

About

subprojects just makes both the development and deployment easier.

For example, you develop several great Node.js libraries which you plan to use in your applications. Sometimes, you have to add some new functionality in these libraries and use this functionality immediately in your applications during development process. But you do not want to publish this functionality to npm until the development completion.

What to do?

  • You can merge your libraries code into node_modules every time you make changes.

  • Or you can rewrite all require statements in your applications and point them to your local libraries, not to to npm modules. Do not forget to revert the changes before publishing/deployment.

  • Or you can copy all your libraries into your applications and manage the same code in the different places.

  • Or you can just ask the simple and lightweight subprojects library to handle all the staff.

How to use?

1. Put this line in your main module before any require statement
require('subprojects');
2. Create the configuration file for all your local dependencies (name it, for example, "/home/test/subprojects.json" )
{
    "mygreatlib": "/home/test/work/libs/mygreatlib"	
}
3. Setup environment variable NODE_LOCAL_SUBPROJECTS for development
export NODE_LOCAL_SUBPROJECTS=/home/test/subprojects.json
4. require your libraries as if they are in npm
var mygreatlib = require('mygreatlib');
5. Do NOT set the NODE_LOCAL_SUBPROJECTS in production environment to load your libraries from npm

This is it!

Contributors

Author: MileAit

License

Public Domain - Unlicense

All the code is original, written from the scratch to avoid any possible license conflicts.