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

aspm

v0.1.3

Published

Atom-Shell Package Manager

Downloads

27

Readme

aspm - Atom-Shell package manager

build status dependencies npm version

A node CLI script like npm but for Atom-Shell. Install and build npm-modules for Atom-Shell.

aspm is designed as a replacement for npm if you're working on an Atom-Shell project.

Warning: May be unreliable at the moment.

Table of Contents

Prequisities

Since you're using Atom-Shell you most likely have those installed already.

  • node & npm(global)
  • node-gyp(global), also fulfill it's requirements.

Installation

Install (preferred globally) with npm install aspm -g.

Quick-Start

  • Install globally with npm. npm install -g aspm
  • Add some configuration to your package.json. (See Configuration. This is optional but highly recommended.)
  • Now use aspm in place of npm in your project.

Usage

  Usage: aspm [options] [command]

  Commands:

    install|i [module]  install module (fetch & build)
    fetch|f [module]    fetch module
    build|b <module>    build module

  Options:

    -h, --help                        output usage information
    -V, --version                     output the version number
    -t, --target <version>            Atom-Shell version
    -a, --arch <arch>                 target architecture
    -p, --target-platform <platform>  target platform
    -s, --save                        save as dependency to package.json
    -s, --save-dev                    save as devDependency to package.json
    -g                                install globally with normal npm
    --tarball [url/path]              install from [remote] tarball
    --quiet                           don't say anything

Configuration (optional)

You can (and should to make things more convenient) configure default values for target, arch and platform in your package.json.

{
  "config": {
    "atom-shell": {
      "version": "0.19.5",
      "arch": "ia32",
      "platform": "win32"
    }
  }
}

This way you can use it just like npm without additional parameters (for basic tasks as shown in usage).

Overriding configuration

You can always set/override some or all configuration values. For example: aspm install --target 0.19.5 --arch ia32.

Without configuration

Important: If you don't specify default values, you'll always have to provide at least a target and arch.

Examples

Please note that sqlite3 as an example does not work at the moment because of node-pre-gyp.

# Install all modules from package.json
aspm install

# Install specific module and save as dependency in package.json
aspm install sqlite3 --save

# Install specific module in a specific version and save as dependency in package.json
aspm install [email protected] --save

# Install multiple module and save as dependency in package.json
aspm install sqlite3 async --save

# Install module from tarball
# In contrast to npm you have to specify the module name here too.
aspm install sqlite3 --tarball https://github.com/mapbox/node-sqlite3/archive/master.tar.gz --target 0.19.5 --arch ia32

# Build a specific module for a specific target
aspm build sqlite3 --target 0.19.5 --arch ia32

# fetch all modules from package.json, then build all in a separate step
aspm fetch
aspm build

How it works

Under the hood

To fetch the modules we just call out to npm with --ignore-scripts. To build and node-gyp with some additional arguments.

Support for modules that use node-pre-gyp

We have basic support for compiling modules that use node-pre-gyp (i.e. sqlite3) by faking some stuff.

BTW

There may or may not be several (maybe better?) alternatives to this.

  • https://github.com/atom/atom-shell/blob/master/docs/tutorial/using-native-node-modules.md

I haven't looked into these, yet.

  • https://github.com/paulcbetts/grunt-build-atom-shell
  • https://github.com/atom/atom-shell-starter in scripts/
  • https://github.com/probablycorey/atom-node-module-installer