npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

node-repository-require

v0.1.5

Published

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

Downloads

7

Readme

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>:[email protected]/<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>:[email protected]/<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>:[email protected]//<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