Understanding npm
A regularly updating survey of the npm community.
Designed with love by NodeSource for our Node.js family.
The project itself makes extensive use of npm. Once installed, there's a total of 406 unique packages in the dependency tree. Most notably:
- The visualisation is rendered using WebGL and stack.gl components.
- GLSL shaders are being managed using glslify.
- The frontend JavaScript is bundled using browserify.
- The data is aggregated using dat, dat-npm and a collection of other packages.
Running the Site Locally
Getting Started
Before you can run the site on your machine, you'll need to ensure that you
have the latest version of Node installed (especially important is npm@2
,
which we use for scoped module support).
When you're ready, clone the repository from GitHub and install the visualisation's dependencies from npm:
git clone [email protected]:nodesource/understanding-npm.git
cd understanding-npm
npm install
Now, you should be ready to start the server up like so:
npm start
Updating the Registry Data
This is all done from the @unpm/dat
package, and requires you to
download >1GB of metadata from the npm registry, npm downloads API and GitHub API.
Depending on your location and connectivity, this could take anywhere from a day to
a week (requests have to be throttled to avoid hitting any rate limits).
A sample dataset has been prepared and included in the repository for everybody's
convenience, so you most likely won't have to deal with
this directly. If, however, you'd still like to update the
data locally you should check out the documentation in
@unpm/dat
's README.md.
Local Subpackages
The site is split out into smaller local packages that are installed with npm.
When developing, we use linklocal
to
make this process easier.
Each package should have its own independent README.md
documenting its purpose
and usage. Some notes on the packages included in this project:
@unpm
-scoped packages are part of the final project.@nsight
-scoped packages are part of the final project, but likely to be reused in future N|Sight projects.@x
-scoped packages are experiments, which are interesting for process documentation but not otherwise used in the final product.gooey
is the only package unscoped package remaining (pending some reorganisation, and sorting out a new name).
Some other packages that were born from this project include:
Authors and Contributors
Hugh Kennedy | GitHub/hughsk | Twitter/@hughskennedy |
---|---|---|
Paul DeVay | GitHub/pauldevay | Twitter/@pdevay |
Contributions are welcomed from anyone wanting to improve this project!
License & Copyright
understanding-npm is Copyright (c) 2015 NodeSource and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details.