Monad Package Manager
  • CoffeeScript 94.9%
  • Less 2.3%
  • JavaScript 1.8%
  • Batchfile 0.5%
  • Shell 0.4%
Find a file
2017-01-02 22:06:07 -06:00
bin Suppress info messages when finding a git.exe to use 2016-10-27 17:15:05 -07:00
native-module Add index.js to native module 2014-07-02 11:21:32 -07:00
script Merge pull request #637 from lgeiger/fix-build 2016-11-16 07:28:38 -07:00
spec Windows 64-bit support (#640) 2016-11-10 01:10:36 -08:00
src Changed packages directory 2017-01-02 22:06:07 -06:00
templates Stop using shadow DOM selectors 2016-10-09 06:23:46 +09:00
.gitattributes Force .sh to LF endings so npm publish can be used from Windows 2016-10-24 15:40:15 -07:00
.gitignore Make postinstall work with regular npm install 2016-06-03 11:02:22 -07:00
.npmignore npm ignore pairs and travis files 2014-04-28 13:18:35 -07:00
.pairs Add .pairs file 2013-08-14 18:01:21 -07:00
.travis.yml Remove node 0.10 from Travis build matrix 2016-11-15 11:40:22 -05:00
appveyor.yml Windows 64-bit support (#640) 2016-11-10 01:10:36 -08:00
BUNDLED_NODE_VERSION Use Node v4.4.5 2016-06-03 11:01:42 -07:00
coffeelint.json 👕 Add coffeelint Config 2015-06-30 16:02:27 -06:00
CONTRIBUTING.md Update contributing file 2014-05-22 15:26:48 -07:00
deprecated-packages.json Remove treeview from deprecated packages 2015-06-04 13:53:21 -07:00
Gruntfile.coffee Update grunt-coffeelint, Use coffeelint.json 2015-06-30 19:53:34 -06:00
ISSUE_TEMPLATE.md 📝 Update issue and PR templates 2016-12-22 19:02:29 -08:00
LICENSE.md Add license file 2013-05-07 12:03:34 -07:00
package.json 1.15.1 2016-11-13 16:06:30 -08:00
PULL_REQUEST_TEMPLATE.md 📝 Update issue and PR templates 2016-12-26 08:57:46 -08:00
README.md Changed packages directory 2017-01-02 22:06:07 -06:00

mpm - Monad Package Manager

A simple fork of the Atom Package Manager

Linux Build Status Windows Build Status Dependency Status

Discover and install Atom packages powered by atom.io

You can configure apm by using the apm config command line option (recommended) or by manually editing the ~/.atom/.apmrc file as per the npm config.

Relation to npm

apm bundles npm with it and spawns npm processes to install Atom packages. The major difference is that apm sets multiple command line arguments to npm to ensure that native modules are built against Chromium's v8 headers instead of node's v8 headers.

The other major difference is that Atom packages are installed to ~/.atom/packages instead of a local node_modules folder and Atom packages are published to and installed from GitHub repositories instead of npmjs.com

Therefore you can think of apm as a simple npm wrapper that builds on top of the many strengths of npm but is customized and optimized to be used for Atom packages.

Installing

apm is bundled and installed automatically with Atom. You can run the Atom > Install Shell Commands menu option to install it again if you aren't able to run it from a terminal (macOS only).

Building

  • Clone the repository
  • 🐧 Install libgnome-keyring-dev if you are on Linux
  • Run npm install; this will install the dependencies with your built-in version of Node/npm, and then rebuild them with the bundled versions.
  • Run ./bin/npm run build to compile the CoffeeScript code (or .\bin\npm.cmd run build on Windows)
  • Run ./bin/npm test to run the specs (or .\bin\npm.cmd test on Windows)

Why bin/npm / bin\npm.cmd?

apm includes npm, and spawns it for various processes. It also comes with a bundled version of Node, and this script ensures that npm uses the right version of Node for things like running the tests. If you're using the same version of Node as is listed in BUNDLED_NODE_VERSION, you can skip using this script.

Using

Run apm help to see all the supported commands and apm help <command> to learn more about a specific command.

The common commands are apm install <package_name> to install a new package, apm featured to see all the featured packages, and apm publish to publish a package to atom.io.

Behind a firewall?

If you are behind a firewall and seeing SSL errors when installing packages you can disable strict SSL by running:

apm config set strict-ssl false

Using a proxy?

If you are using a HTTP(S) proxy you can configure apm to use it by running:

apm config set https-proxy https://9.0.2.1:0

You can run apm config get https-proxy to verify it has been set correctly.

Viewing configuration

You can also run apm config list to see all the custom config settings.