Skip to content

An Emacs minor mode for working with NPM projects.

License

Notifications You must be signed in to change notification settings

rajasegar/npm-mode

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm-mode

This is npm-mode, an Emacs minor mode for working with NPM projects.

Installation

Package Manager

The recommended way to install npm-mode is through the package manager and MELPA.

Manual Installation

Start by cloning the npm-mode package repository:

$ git clone https://github.com/mojochao/npm-mode.git /your/path/here

Finish by loading the npm-mode package in your emacs configuration:

(add-to-list 'load-path "/your/path/here/npm-mode")
(require 'npm-mode)

Configuration

The npm-mode package provides a minor mode which can be activated with:

(npm-mode)

Global Activation

The mode can be activated globally with:

(npm-global-mode)

Project Activation

The mode can be activated on a per-project basis using directory local variables by running add-dir-local-variable from the root directory of a project.

For example, visit the README.md file in the root directory of a project, and run M-x add-dir-local-variable. Emacs will prompt you for Mode or subdirectory:, to which you should enter nil.

Next, you will be prompted for Add directory-local variable:, to which you should enter mode.

Next, you will be prompted for Add mode with value:, to which you should enter npm-mode.

Next, you will be placed in a new .dir-locals.el buffer containing the directory local variables for the project, including the added npm-mode configuration.

;;; Directory Local Variables
;;; For more information see (info "(emacs) Directory Variables")

((nil
  (mode . npm)))

Finally, save the buffer contents with C-x C-s, and your project is configured for npm-mode.

Now when you visit any file under the project directory, npm-mode will be activated and its commands made available.

Command Keymap Prefix

The mode provides a command keymap, whose default C-c n prefix can be configured with M-x customize-variable npm-mode-keymap-prefix.

Usage

Command Keymap

Once npm-mode has been activated, its commands are accessed by the C-c n command prefix:

command keymap description
npm-mode-npm-init n Initialize new project
npm-mode-npm-install i Install all project dependencies
npm-mode-npm-install-save s Add new project dependency
npm-mode-npm-install-save-dev d Add new project dev dependency
npm-mode-npm-uninstall u Remove project dependency
npm-mode-npm-list l List installed project dependencies
npm-mode-npm-run r Run project script
npm-mode-visit-project-file v Visit project package.json file
? Display keymap commands

npm-mode-npm-init

Running C-c n n will create a new project in the current directory.

npm-mode-npm-install

Running C-c n i in a project directory will install all project dependencies.

npm-mode-npm-install-save

Running C-c n s in a project directory will prompt for the name of a package to install and will install it as a project dependency.

npm-mode-npm-install-save-dev

Running C-c n d in a project directory will prompt for the name of a to install and will install it as a project dev dependency.

npm-mode-npm-uninstall

Running C-c n u in a project directory will prompt for the name of a package to uninstall and will uninstall it and remove it from project dependencies.

npm-mode-npm-list

Running C-c n l in a project directory will list the project.

npm-mode-npm-run

Running C-c n r in a project directory will prompt for the name of a script to run and will run it. Completion support is provided.

npm-mode-visit-project-file

Running C-c n v in a project directory will visit the project file in a buffer.

Acknowledgements

This repo is a rewrite of a fork of https://github.com/AlexChesters/emacs-npm, and its history has been preserved. Many thanks to Alex for his contribution.

About

An Emacs minor mode for working with NPM projects.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 100.0%