npm-mode
npm-mode copied to clipboard
An Emacs minor mode for working with NPM projects.
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.