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

jspm-fs

v0.3.0

Published

JSPM location service for local filesystem

Downloads

24

Readme

jspm-fs

JSPM registry implementation for your local filesystem (including paths to mounted network shares). Using jspm-fs you can operate a simple stupid offline package registry which consists just of folders and files. No magic, no server or database. Version informations are derived from the filename.

The jspm-fs registry was developed as part of modular web application build system which is centered around systemjs-builder and jspm. It is compatible with the latest 0.17 branch of jspm-cli.

Supports windows, mac and linux-based operating systems.

npm version

Installation

First install the actual JSPM extension package:

npm install jspm-fs

and then create & configure it

jspm registry create fs jspm-fs

Configuration

Everything jspm-fs takes, is the absolute path to the root directory where all package release files reside in. A package release file is just a zip file containing the actual package source (exactly as expected from npm/jspm).

The recommended way to configure this directory path is to use the command jspm registry config fs. But you can also introduce an environment variable called JSPM_REGISTRY_FS_BASEDIR and set it to the valid absolute directory path.

Aliasing

Similarly as known from the default jspm-registry, you can define package name lookup aliases in a jspm-fs registry folder. When jspm-fs detects a JSON file called aliases.json in the global registry base directory:

/path/to/our/registry/basedir
    |-- aliases.json

it expects the file to contain a plain object with key-value string pairs whereas key is the exact package name and value is the package identifier (JSPM-style scheme) the lookup request should be redirected to. Example aliases.json file content:

{
  "jquery": "jspm:jquery",
  "my-package": "npm:my-package"
}

How to publish packages

Package release files must be named according to the following scheme: {package-name}-{version}.zip. Whereas {package-name} corresponds to the official package name as contained in the name package.json property, and {version} is an arbitrary version identifier (both, semver-compatible and symbolic version identifiers are allowed). Since our registry may contain multiple versions of the same package and we want to keeps things clear, they must furthermore be grouped into sub-directories whose name corresponds to the according package name.

Let's illustrate this with an example: We have a fictitious package called my-package which is available in 3 different version. Our package registry base directory So our registry base directory will look like this:

/path/to/our/registry/basedir
    |-- aliases.json
    |-- my-package
        |-- my-package-0.0.1.zip
        |-- my-package-0.1.0.zip
        |-- my-package-1.0.0.zip

By using this naming convention we get a semver-based versioning syntax

Meta

My appreciation belongs to @guybedford for his awesome work on systemjs, jspm and everything in between.

If you find a bug or have question, please use the issue page of this repository.