|
1 | 1 | # Configuring your Windows development environment
|
| 2 | + |
2 | 3 | ## Command line console and other useful tools
|
3 | 4 | One of the pain points we hear from users is that the command line console in Windows could use some work. We hear ya, and we're [working on it](https://wpdev.uservoice.com/forums/266908). In the meantime, we want to enable you to have the best experience possible. So here are some links to recommended tools to complement your existing experience.
|
4 | 5 | * **cmd:** cmd has had some improvements in Windows 10, so be sure to check it out if you abandoned ship in the past :smiley:. When you're working with Node.js, chances are you'll be spending a bit more time in the console, so it's well worth brushing up on your CLI commands.
|
5 | 6 | * **PowerShell:** PowerShell is a powerful object-oriented shell (as opposed to a text-based shell). It's a bit of a learning curve, but well worth it. It also has a bunch of aliases for commands, like `ls`, that'll make bash-happy people feel more at home. Here's a [good walkthrough](https://developer.rackspace.com/blog/powershell-101-from-a-linux-guy/) of some PowerShell commands from a *nix perspective, and there are [many other resources](https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx) to help you get started.
|
6 |
| -* **Chocolatey:** [Chocolatey](https://chocolatey.org) is the apt-get of Windows. There are also some other alternatives like Ninite which have their own advantages, but Chocolatey is the most commonly used. |
7 |
| -* **Git:** `choco install git`. |
8 |
| -* **nvm-windows:** https://github.com/coreybutler/nvm-windows - there are new versions of Node.js coming out all the time, so it can be annoying to migrate between versions. nvm-windows makes it way easier to switch between various versions. |
| 7 | +* **Chocolatey:** [Chocolatey](https://chocolatey.org) is the apt-get of Windows. There are also some other alternatives, like [Ninite](https://ninite.com/), which have their own advantages, but Chocolatey is the most commonly used. |
| 8 | +* **Git:** `choco install git` or download Git from [the official downloads page](https://git-scm.com/downloads). |
| 9 | +* **nvm-windows:** https://github.com/coreybutler/nvm-windows - there are new versions of Node.js coming out all the time, and it can be annoying to migrate between versions. nvm-windows makes it way easier to switch between various versions. |
9 | 10 | * **npm-windows-upgrade:** npm is shipped with Node.js, and upgrading on Windows often requires manual upgrade steps. npm-windows-upgrade makes this process much easier. Install it by running `npm install npm-windows-upgrade -g`, and run the command by running `npm-windows-upgrade`.
|
10 |
| -* **terminal emulators:** cmder and ConEmu. |
| 11 | +* **terminal emulators:** Terminal emulators can enhance your terminal experience with themes, tabs and advanced configuratability. Popular emulators include [cmder](http://cmder.net/), [ConEmu](https://conemu.github.io/) and [Hyper](https://hyper.is/). |
11 | 12 | * **Cygwin:** [Cygwin](http://cygwin.com/index.html) can be handy if you're more familiar with bash, or are trying to use a Node app that assumes a *nix environment. Cygwin is a distribution of popular GNU and other open source tools running on Microsoft Windows. The core part is the Cygwin library which provides the POSIX system calls and environment these programs expect.
|
12 | 13 | * **Git for Windows** [Git for windows](https://git-for-windows.github.io/) provides native versions of the BASH shell and some *nix utilites in addition to the command line git and GUI tool. It is probably the best of shells based on MSYS/MinGW but still supplies ports of older versions of the *nix utilities. Works very well in combination with [ConEmu](https://conemu.github.io/).
|
13 |
| -* **GitHub Desktop** [GitHub Desktop](https://desktop.github.com/) (previosuly GitHub for Windows) is primarilarly a GUI but it also includes a version of MSYS/MinGW Bash. |
14 |
| -* **Putty:** ssh client. |
15 |
| -* **WinSCP:** free [S]FTP client, also supports SCP and webDAV. |
16 |
| -* **Fiddler:** a web debugging tool. In general, people use it for the browser-side debugging, but you can also [configure it](http://stackoverflow.com/questions/8697344/can-a-proxy-like-fiddler-be-used-with-node-jss-clientrequest) to view server-side requests from Node.js. |
| 14 | +* **GitHub Desktop** [GitHub Desktop](https://desktop.github.com/) (previously GitHub for Windows) is primarilarly a GUI but it also includes a version of MSYS/MinGW Bash. |
| 15 | +* **Putty:** an SSH and telnet client: https://www.putty.org/. |
| 16 | +* **WinSCP:** an (S)FTP client that also supports SCP and webDAV: https://winscp.net/. |
| 17 | +* **Fiddler:** a web debugging tool: https://www.telerik.com/fiddler. In general, people use it for the browser-side debugging, but you can also [configure it](http://stackoverflow.com/questions/8697344/can-a-proxy-like-fiddler-be-used-with-node-jss-clientrequest) to view server-side requests from Node.js. |
17 | 18 |
|
18 | 19 | > :triangular_flag_on_post: **TODO** Provide more dev environment options and a PowerShell script to make things easier.
|
19 | 20 |
|
20 | 21 | > :chart_with_upwards_trend: **IN PROGRESS** We're currently planning the next Windows release, so it's a great time to let us know your biggest command line pain points!
|
21 | 22 |
|
22 | 23 | ## Editors and IDEs
|
23 |
| -* **[Visual Studio Code](https://code.visualstudio.com/)** is a lightweight, cross-platform IDE that offers powerful [editing](https://code.visualstudio.com/Docs/editor/editingevolved), [debugging](https://code.visualstudio.com/Docs/editor/debugging), and [git integration](https://code.visualstudio.com/Docs/editor/versioncontrol) for [Node.js development](https://code.visualstudio.com/docs/runtimes/nodejs). Several Visual Studio Code extension may be useful for Node.js development: |
24 |
| - * [eslint](https://marketplace.visualstudio.com/items/dbaeumer.vscode-eslint) integrates the `eslint` linter. |
25 |
| - * [npm script runner](https://marketplace.visualstudio.com/items/eg2.vscode-npm-script) supports to run npm scripts from the command palette. |
26 |
| - * [EditorConfig](https://marketplace.visualstudio.com/items/chrisdias.vscodeEditorConfig) consistent editor spaces and indents. |
| 24 | +* **[Visual Studio Code](https://code.visualstudio.com/)** is a lightweight, cross-platform IDE that offers powerful [editing](https://code.visualstudio.com/Docs/editor/editingevolved), [debugging](https://code.visualstudio.com/Docs/editor/debugging), and [version control integration](https://code.visualstudio.com/Docs/editor/versioncontrol) for [Node.js development](https://code.visualstudio.com/docs/runtimes/nodejs). Several Visual Studio Code extension may be useful for Node.js development: |
| 25 | + * [eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) integrates the `eslint` linter. |
| 26 | + * [npm script runner](https://marketplace.visualstudio.com/items?itemName=eg2.vscode-npm-script) adds support for running npm scripts from the command palette. |
| 27 | + * [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) helps enforce consistent editor spaces and indents. |
27 | 28 |
|
28 | 29 | * **[Node.js Tools for Visual Studio](https://aka.ms/explorentvs)** is a free, open-source extension that turns Visual Studio into a powerful Node.js IDE: intelligent code completions, advanced debugging and profiling, cloud deployment, unit-testing, REPL window, and more. For more information, check out these [walkthrough](https://channel9.msdn.com/events/Visual-Studio/Connect-event-2015/801) and [overview](https://channel9.msdn.com/Blogs/Seth-Juarez/Nodejs-Tools-for-Visual-Studio) videos. Note that while Visual Studio can be used as a stand-alone additional IDE 'layer' to a comprehensive commandline based workflow, several Visual Studio extensions may also prove useful:
|
29 |
| - * [EditorConfig](https://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328) consistent editor spaces and indents. |
30 |
| - * [NPM scripts task runner](https://visualstudiogallery.msdn.microsoft.com/8f2f2cbc-4da5-43ba-9de2-c9d08ade4941) adds npm scripts to the Visual Studio task runner explorer. |
31 |
| - * [Web Analyzer](https://visualstudiogallery.msdn.microsoft.com/6edc26d4-47d8-4987-82ee-7c820d79be1d) various linting tools incl. ESLint. |
32 |
| - * [Web Essentials](https://visualstudiogallery.msdn.microsoft.com/ee6e6d8c-c837-41fb-886a-6b50ae2d06a2) many useful tools for client and server dev. |
33 |
| - * [GitHub Extensions for Visual Studio](https://visualstudiogallery.msdn.microsoft.com/75be44fb-0794-4391-8865-c3279527e97d) (can installed by selecting during VS installation). |
| 30 | + * [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig) helps enforce consistent editor spaces and indents. |
| 31 | + * [NPM scripts task runner](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.NPMTaskRunner) adds support for running npm scripts from the Visual Studio task runner explorer. |
| 32 | + * [Web Analyzer](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebAnalyzer) provides various linting tools, including the `eslint` linter. |
| 33 | + * [Web Essentials](https://marketplace.visualstudio.com/items?itemName=MadsKristensen.WebEssentials20153) adds many useful tools for client and server dev. |
| 34 | + * [GitHub Extensions for Visual Studio](https://marketplace.visualstudio.com/items?itemName=GitHub.GitHubExtensionforVisualStudio) makes it easy to connect to and work with GitHub repositories and can installed during Visual Studio installation. |
34 | 35 |
|
35 |
| -* **WebStorm** is a lightweight yet powerful IDE, perfectly equipped for complex client-side development and server-side development with Node.js. It supports TypeScript 1.6, Flow, ES6, Angular 2, TSLint, npm scripts, and more. For more information, check out [jetbrains.com/webstorm](http://jetbrains.com/webstorm). |
| 36 | +* **[WebStorm](https://www.jetbrains.com/webstorm/)** is a lightweight yet powerful IDE, perfectly equipped for complex client-side development and server-side development with Node.js. It boasts [a lot of features](https://www.jetbrains.com/webstorm/features/), including support for both JavaScript and TypeScript, framework support (Angular, React, Vue.js, Meteor, etc.), code quality tools (TSLint, ESLint, etc.), build tools (Gulp, Grunt or npm), debugging, testing and more. |
36 | 37 |
|
37 | 38 |
|
38 | 39 | ## MAX_PATH explanation and workarounds
|
|
0 commit comments