forked from ember-learn/cli-guides
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add common issues markdown from ember-cli.com
- Addressing issue ember-learn#3, item 10, "Port over Common Issues. Mostly copy and paste from this source code" - Converted the markdown file found here: https://raw.githubusercontent.com/ember-cli/ember-cli.github.io/master/_posts/2013-04-03-common-issues.md
- Loading branch information
1 parent
4fb09d7
commit 1565329
Showing
1 changed file
with
129 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,129 @@ | ||
<!-- copy over from ember-cli.com --> | ||
# Common Issues | ||
|
||
### `npm` Package Management with `sudo` | ||
|
||
Installing packages such as `bower` with `sudo` powers can lead to permissions | ||
issues and ultimately to problems installing dependencies. See | ||
[https://gist.github.com/isaacs/579814](https://gist.github.com/isaacs/579814) | ||
for a collection of various solutions. | ||
|
||
### Installing From Behind a Proxy | ||
|
||
If you're behind a proxy, you might not be able to install because Ember CLI–or | ||
some of its dependencies–tries to `git clone` a `git://` URL. (In this scenario, | ||
only `http://` URLs will work). | ||
|
||
You'll probably get an error like this: | ||
|
||
```bash | ||
npm ERR! git clone git://github.com/jgable/esprima.git Cloning into bare repository '/home/<username>/.npm/_git-remotes/git-github-com-jgable-esprima-git-d221af32'... | ||
npm ERR! git clone git://github.com/jgable/esprima.git | ||
npm ERR! git clone git://github.com/jgable/esprima.git fatal: unable to connect to github.com: | ||
npm ERR! git clone git://github.com/jgable/esprima.git github.com[0: 192.30.252.129]: errno=Connection timed out | ||
npm ERR! Error: Command failed: fatal: unable to connect to github.com: | ||
npm ERR! github.com[0: 192.30.252.129]: errno=Connection timed out | ||
``` | ||
|
||
As a workaround you can configure `git` to make the translation: | ||
|
||
```bash | ||
git config --global url."https://".insteadOf git:// | ||
``` | ||
|
||
### Using Canary Build instead of release | ||
|
||
For Ember: `bower install ember#canary --resolution canary` | ||
For `ember-data`: `npm install --save-dev emberjs/data#master` | ||
|
||
### Windows Build Performance Issues | ||
|
||
See [The Windows Section](#windows) for more details. | ||
|
||
### PhantomJS on Windows | ||
|
||
When running tests on Windows via PhantomJS the following error can occur: | ||
|
||
```bash | ||
events.js:72 | ||
throw er; // Unhandled 'error' event | ||
^ | ||
Error: spawn ENOENT | ||
at errnoException (child_process.js:988:11) | ||
at Process.ChildProcess._handle.onexit (child_process.js:779:34) | ||
``` | ||
|
||
In order to fix this ensure the following is added to your `PATH`: | ||
|
||
`C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\phantomjs\lib\phantom` | ||
|
||
### Cygwin on Windows | ||
|
||
Node.js on Cygwin is no longer supported [more | ||
details](https://github.com/nodejs/node/wiki/Installation#building-on-cygwin) | ||
Rather then using Cygwin, we recommend running Ember CLI natively on windows, | ||
or via the new [Windows Subsystem | ||
Linux](https://msdn.microsoft.com/en-us/commandline/wsl/install_guide). | ||
|
||
### Usage with Docker | ||
|
||
When building your own [Docker](http://docker.com) image to build Ember | ||
applications and run tests, there are a couple of pitfalls to avoid. | ||
|
||
* PhantomJS requires `bzip2` and `fontconfig` to already be installed. | ||
* After installing PhantomJS, you will need to manually link PhantomJS to | ||
`/usr/local/bin` if that is not done by the install process. | ||
* Testem uses the `which` command to locate PhantomJS, so you must install | ||
`which` if it is not included in your base OS. | ||
|
||
### Usage with Vagrant | ||
|
||
[Vagrant](http://vagrantup.com) is a system for automatically creating and | ||
setting up development environments that run in a virtual machine (VM). | ||
|
||
Running your Ember CLI development environment from inside of a Vagrant VM will | ||
require some additional configuration and will carry a few caveats. | ||
|
||
#### Ports | ||
|
||
In order to access your Ember CLI application from your desktop's web browser, | ||
you'll have to open some forwarded ports into your VM. Ember CLI by default | ||
uses two ports. | ||
|
||
* For serving assets the default is `4200`. Can be configured via `--port 4200`. | ||
* For live reload there is no default. Can be configured via `---live-reload-port=9999`. | ||
|
||
To make Vagrant development seamless these ports will need to be forwarded. | ||
|
||
```ruby | ||
Vagrant.configure("2") do |config| | ||
# ... | ||
config.vm.network "forwarded_port", guest: 4200, host: 4200 | ||
config.vm.network "forwarded_port", guest: 9999, host: 9999 | ||
end | ||
``` | ||
|
||
#### Watched Files | ||
|
||
The way Vagrant syncs directories between your desktop and vm may prevent file | ||
watching from working correctly. This will prevent rebuilds and live reloads | ||
from working correctly. There are several work arounds: | ||
|
||
1. Watch for changes by polling the file system via: `ember serve --watcher polling`. | ||
2. Use [nfs for synced folders](https://docs.vagrantup.com/v2/synced-folders/nfs.html). | ||
|
||
#### VM Setup | ||
|
||
When setting up your VM, install Ember CLI dependencies as you normally would. | ||
Some of these dependencies (such as [broccoli-sass](#sass)) may have native | ||
depenencies that may require recompilation. To do so run: | ||
|
||
```bash | ||
npm rebuild | ||
``` | ||
|
||
#### Provider | ||
|
||
The two most common Vagrant providers, VirtualBox and VMware Fusion, will both | ||
work. However, VMware Fusion is substantially faster and will use less battery | ||
life if you're on a laptop. As of now, VirtualBox will use 100% of a single CPU | ||
core to poll for file system changes inside of the VM. |