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

flavio

v6.0.1

Published

Really simple package manager for your own private packages hosted on any git or svn server. No registry or server hosting required. Can be used in conjunction with bower/npm

Downloads

87

Readme

flavio

Really simple package manager for your own private packages hosted on any git server. No registry or server hosting required. Can be used in conjunction with bower/npm

Usage

Add flavio support to an existing project

Add a flavio.json file to the root of your project using the init command

flavio init

it looks similar to package.json / bower.json:

{
  "name": "my-project",
  "version": "0.1.0-snapshot.0"
}

You can then either add dependencies using the 'add' command: (Dependencies by default are stored in a "flavio_components" folder)

flavio add My_Dependency https://github.com/peteward44/gulp-directory-sync.git

Or add them manually to the json file, then running the update command:

{
  "name": "my-project",
  "version": "0.1.0-snapshot.0",
  "dependencies": {
    "My_Dependency": "https://github.com/username/my_dependency#master"
  }
}
flavio update

Clone repository

Default clone (defaults to master branch)

flavio clone https://github.com/username/repo.git

Clone a specific branch, add #branch_name to end of URL in the same way bower does

flavio clone https://github.com/username/repo.git#my_branch

You can do the same for a tag

flavio clone https://github.com/username/repo.git#1.0.0

Update an already cloned repository

Update from root directory of project

flavio update

Update from another directory

flavio update --cwd=/home/me/repo

Print status

flavio status

Outputs something like

Repository         Target  Up to date?  Conflicts?  Local changes?  URL
-----------------  ------  -----------  ----------  --------------  ------------------------------------------------------------------------
My_Project         master  YES          CLEAN       CHANGES         https://github.com/username/my_project#master
My_Dependency1     master  YES          CLEAN       CLEAN           https://github.com/username/my_dependency1#master
My_Dependency2     master  YES          CLEAN       CHANGES         https://github.com/username/my_dependency2#master

Tag a repository

Flavio will create tags for your main project and all your dependencies. It uses the version number, stripped of the "snapshot" prerelease tag in the flavio.json as the tag name. It requires write access to the master branch of the repositories to successfully complete, as it increments the version number on the master branch.

flavio tag

You can tag an individual dependency (and any of it's dependencies) using the "tagdep" command.

flavio tagdep My_Dependency1

You can also specify a tag name to use with both commands if desired.

flavio tag 1.5.2
flavio tagdep My_Dependency1 8.4.2

If you wish to specify the tag names of the dependencies that are automatically tagged, you can specify them using the --versions argument. You can repeat the --versions parameter as many times as necessary.

flavio tag --versions My_Dependency1=8.4.2 --versions My_Dependency2=4.2.6
flavio tagdep 5.2.4 --versions My_Dependency1=8.4.2 --versions My_Dependency2=4.2.6

If you have a lot of dependencies, you can specify a filename which points to a JSON file containing this version information for dependencies:

flavio tag --input my_file.json

my_file.json looks like:

{
   "My_Dependency1": "8.4.2",
   "My_Dependency2": "4.2.6"
}

Execute a git command on main project and dependencies

Sometimes it may be useful to execute the same command on all dependencies - e.g. a git clean:

flavio execute -- clean -fdx

Export all files to another directory

If you want to export files stored in git to another directory:

flavio export /home/user/my_export_directory

The dependency cache

Flavio by default clones dependency repositories into a shared directory and then creates symbolic links to them from the flavio_modules directory. To disable this behaviour, use the --link=false command line argument.

To clear all dependencies connected to a project, execute a clear command in the root folder:

flavio clear

To clear all dependencies for every project, use the clearall command:

flavio clearall