Skip to content

NPM Module to extend require() to treat the base application as a module.

License

Notifications You must be signed in to change notification settings

stevethedev/node-kraeve

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kraeve

npm version Build Status Build status

Kraeve (pronounced "Crave") is an NPM module that solves the problem of ugly or complicated require() paths in deeply nested or highly structured node projects. When developing a Node application (or library), every file in the project must be aware of the location of all of its dependencies.

Given a project, named "my-project" (in package.json), you may have a folder structure that looks something like this:

./my-project/tests/database/models/article.js
./my-project/lib/database/models/article.js
./my-project/lib/database/models/category.js

Require Article from the Category Model

const Article = require('./article');

Require Article from the Article Test

const Article = require('../../../lib/database/models/article');

This is inconvenient, difficult to keep track of, and closely ties your application's code to the folder structure. If you are ever forced to restructure your application, updating the relative paths becomes a chore as you are forced to rebuild the relative paths for your application.

With Kraeve, require() treats your application as if it were a module:

Require Article from Any Location

const Article = require('my-project/lib/database/models/article');

Add Pseudo-Modules

// Add a module relative to the project
require('kraeve').set('my-project-lib', './lib');

// Optionally, specify a module-name to read from
require('kraeve').set('my-project-etc', './etc', 'kraeve');

Global Without Collisions

Kraeve works on the top-level folder for an application, so it can be installed as a dependency without breaking other projects. If your project is included as a module another application, Node will find it in the node_modules folder, anyway. Plus, there's no configuration so you don't need to worry about other projects overwriting your dependencies!

Installing

You can start benefiting from Kraeve in three steps:

  1. Create a package.json. You probably already have this, but make sure your project doesn't have the same name as any of your dependencies!

    npm init
  2. Install Kraeve with NPM Package Manager:

    npm install --save kraeve
  3. Include Kraeve early in your program's entry-point:

    require('kraeve');

And that's it! Kraeve is now installed on your project!

License

Kraeve is open-source software licensed under the MIT License

About

NPM Module to extend require() to treat the base application as a module.

Resources

License

Stars

Watchers

Forks

Packages

No packages published