This section provides information on integrating Ember into various code editors and how to debug Ember CLI node code.
Code editor integrations
Visual Studio Code
If you are using VSCode with Ember CLI, there's an official
extension pack
maintained by the Ember Learning team that adds multiple Ember plugins that can help in
Ember development. If you already have VSCode installed on your machine, you can
click here to view this extension pack inside VSCode. Alternatively, you can
also search for embertooling.emberjs
inside the extensions view.
Atom
If you are using Atom with Ember CLI, there are some packages available specific to Ember development.
Atom -> Preferences -> Install
- ide-ember - Ember Language Server support in Atom
- ember-cli-helper - Ember CLI integration in Atom
- ember-tabs - Makes atom.io work better with Ember pods
- atom-ember-components - See all controllers and components that are rendering your component. Currently only works with pods structure.
- atom-ember-snippets - Autocomplete for Ember module imports, component, service and route skeletons, and more.
Emacs
If you are using Emacs with Ember CLI, Emacs creates temporary backup, autosave, and lockfiles that interfere with broccoli watcher, so they need to either be moved out of the way or disabled. To do that, ensure your emacs configuration contains the following:
(setq backup-directory-alist `((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms `((".*" ,temporary-file-directory t)))
(setq create-lockfiles nil)
An ember-mode package is also
available. It has shortcuts for quickly navigating files in Ember projects,
running generators, and running build, serve, and test tasks. It also includes
support for linking build errors to files and minibuffer notifications of
ember serve
status. It can be installed from MELPA. To
use MELPA, ensure your configuration contains the following:
(require 'package)
(add-to-list 'package-archives
'("melpa" . "http://melpa.org/packages/") t)
(package-initialize)
Then ember-mode can be installed from the package menu at M-x
package-list-packages
. After it is installed, add a file named
.dir-locals.el
to the root of your Ember projects with the contents:
((nil . ((mode . ember))))
to enable it inside those projects.
Sublime Text
If you are using Sublime Text with Ember CLI,
by default it will try to index all files in your tmp
directory for its
GoToAnything functionality. This will cause your computer to come to a
screeching halt @ 90%+ CPU usage, and can significantly increase build times.
Remove these directories from the folders Sublime Text watches:
Sublime Text -> Preferences -> Settings - User
// folder_exclude_patterns and file_exclude_patterns control which files
// are listed in folders on the side bar. These can also be set on a per-
// project basis.
"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "tmp/class-*", "tmp/es_*", "tmp/jshinter*", "tmp/replace_*", "tmp/static_compiler*", "tmp/template_compiler*", "tmp/tree_merger*", "tmp/coffee_script*", "tmp/concat-tmp*", "tmp/export_tree*", "tmp/sass_compiler*"]
WebStorm
If you are using WebStorm with
Ember CLI, you will need to modify your .gitignore
file, enable
ECMAScript6
settings, and mark certain directories.
First, add the following line to .gitignore
:
.idea
Next, from the WebStorm menu:
File > Settings -> Languages & Frameworks -> JavaScript -> ECMAScript6
Click 'OK' to close the Settings modal window.
Next, in Webstorm's Project window right-click on each of the following directories, go to 'Mark Directory As' and mark as indicated:
Mark as Excluded
:
/tmp
/dist
Mark as Resource Root
:
/
/public
Mark as Test Sources Root
:
/tests
Intellij-emberjs
This plugin provides excellent Ember.js support for all JetBrains IDEs that support JavaScript, including WebStorm.
In order to install it, go to:
File | Settings... | Plugins | Browse repositories...
Search for Ember.js
and click the Install button.
Vim
If you are using Vim with Ember CLI, Vim creates temporary backups and autosaves which interfere with broccoli, so they need to either be moved out of the way or disabled.
Change temporary backup and autosave locations
By default, Vim places the temporary backup and autosave files right next to the associated file. If you change where Vim puts these backup and autosave files, you can still get the benefits of these features without it interfering with Ember.js or your build.
In your .vimrc, add:
set backupdir=~/.vim/backup//
set directory=~/.vim/swap//
set undodir=~/.vim/undo//
And make sure to create the directories:
mkdir -p ~/.vim/backup; mkdir -p ~/.vim/swap; mkdir -p ~/.vim/undo
Disable temporary backups and autosave locations
If you'd like to disable backups, you could add to your .vimrc:
set nobackup
set noswap
set noundofile
Plugins
Some useful Vim plugins for working with Ember.js:
- ember_tools - Provides various tools for navigation and code reformatting, similar to rails.vim for Rails.
- projectionist - Powerful project navigation, provided you write your own code projections. Here's an example
Debugging
See the Debugging guide for tips on debugging build steps, addons, and custom blueprints.
Proxying network requests
When using ember serve
, by default all network requests will target the Ember server at localhost:4200
.
You can use the --proxy
flag to direct network requests to another address. For example
ember server --proxy=http://localhost:8080
will proxy network requests to the server running at http://localhost:8080
.
The localhost:8080
address can be replaced with the IP address of any remote server.