Skip to content

animatedcreativity/node-repository-require

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-repository-require

Install any public/private repository (even a node module) easily in node_modules folder, on the go.


NOTE: If you include public/private git links in package.json dependencies, they will also work by default without this module, and will be installed by npm update. But, its better to use this module if the repository is not a npm module.


Why the module was made?
Made this module just because Glitch.com (https://glitch.com/) was not supporting installing my private Github repositories, at this time.


ToDo:

  • Install dependencies automatically.
  • Remove dependencies automatically from package.json just like they are added.

Usage:

Create installer with optional config, it will use defaults if not provided.

var nodeRepository = require("node-repository-require");
var installer = new nodeRepository({consoleLog: true});

Require module

installer.require("module-name", "https://<github_token>:x-oauth-basic@github.com/<user>/<module_name>.git");

Run npm update in console just one time once you have required a new module from repository. This is because once the module is downloaded, its dependencies are added in package.json

npm update

Automatically install multiple modules

var nodeRepository = require("node-repository-require");
var installer = new nodeRepository({consoleLog: true});
installer.auto({
  token: "<github_token>",
  user: "<github_user>",
  modules: {
    "module-1": {
      force: false,
      version: "<module_version>"
    },
    "module-2": {
      force: false,
      version: "<module_version>"
    },
    "module-3": {
      force: false,
      version: "<module_version>"
    }
  }
});

OR

installer.auto({
  token: "<github_token>",
  user: "<github_user>",
  modules: {
    "module-1": "<module_version>"
    "module-2": "<module_version>"
    "module-3": "<module_version>"
  }
});

If you are using this module on Glitch.com, then just run refresh in the console.
If the repository is not a npm module, then no need to do npm update.

Check if the module was installed

installer.require("module-name", "https://<github_token>:x-oauth-basic@github.com/<user>/<module_name>.git")
.then(function(result) {
  var module = require("module-name");
  // do something with module
});

Repository links:

  • public: A normal repository link like: https://github.com//<module_name>.git

  • private: Repository link with access token for example for Github, like: https://<github_token>:x-oauth-basic@github.com//<module_name>.git


installer Methods

Checks if module already exists, installs/reinstalls if required.

.require(name, link, forceReinstall)

  • name: module name to use
  • link: module's public/private repository link
  • forceReinstall: Force reinstall a module, useful if there is a new version for the module available from the repository.

.exists(name)

Checks if module already exists.

  • name: module name to use

.path(name)

Gets absolute module path.

  • name: module name to use

.version(name)

Gets installed module's version.

  • name: module name to use

.install(name, link)

Checks if module already exists, installs if required. Does not reinstall.

  • name: module name to use
  • link: module's public/private repository link

.addDependencies(name)

Finds dependencies in a module's package.json and adds them to current project's package.json. npm update is necessary after this.

  • name: module name to use

About

Install a Node.js module from any public/private repository easily.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published