Настройка среды разработки Node.js в подсистеме Windows для Linux версии 2Set up your Node.js development environment with WSL 2

В этом пошаговом руководстве содержатся инструкции по настройке среды разработки Node.js с помощью подсистемы Windows для Linux (WSL).The following is a step-by-step guide to help you get your Node.js development environment set up using Windows Subsystem for Linux (WSL).

Мы рекомендуем вам установить и запустить обновленную версию WSL 2, чтобы пользоваться преимуществами, связанными с существенной оптимизацией производительности и совместимости системных вызовов, включая возможность запуска Docker Desktop.We recommend that you install and run the updated WSL 2, as you will benefit from significant improvements in performance speed and system call compatibility, including the ability to run Docker Desktop. Многие модули npm и руководства для разработки веб-приложений на Node.js написаны для пользователей Linux, и поэтому в них используются средства упаковки и установки на основе Linux.Many npm modules and tutorials for Node.js web development are written for Linux users and use Linux-based packaging and installation tools. Большинство веб-приложений также развертываются в Linux, поэтому использование WSL 2 обеспечит согласованность между рабочей средой и средой разработки.Most web apps are also deployed on Linux, so using WSL 2 will ensure you have consistency between your development and production environments.

Примечание

Если вы намерены использовать Node.js напрямую в Windows или в рабочей среде Windows Server, см. руководство по настройке среды разработки Node.js непосредственно в Windows.If you are committed to using Node.js directly on Windows, or plan to use a Windows Server production environment, see our guide to set up your Node.js development environment directly on Windows.

Установка WSL 2Install WSL 2

Чтобы включить и установить WSL 2, выполните инструкции из документации по установке WSL.To enable and install WSL 2, follow the steps in the WSL install documentation. Эти инструкции включают возможность выбора дистрибутива Linux (например, Ubuntu).These steps will include choosing a Linux distribution (for example, Ubuntu).

Установив WSL 2 и дистрибутив Linux, откройте дистрибутив Linux (его можно найти в меню "Пуск" в Windows) и проверьте версию и кодовое имя с помощью команды lsb_release -dc.Once you have installed WSL 2 and a Linux distribution, open the Linux distribution (it can be found in your Windows start menu) and check the version and codename using the command: lsb_release -dc.

Мы рекомендуем не просто регулярно обновлять дистрибутив Linux, а сделать это сразу после установки. Так вы убедитесь в том, что у вас есть последние версии пакетов.We recommend updating your Linux distribution regularly, including immediately after you install, to ensure you have the most recent packages. Windows не обрабатывает это обновление автоматически.Windows doesn't automatically handle this update. Чтобы обновить дистрибутив, используйте команду sudo apt update && sudo apt upgrade.To update your distribution, use the command: sudo apt update && sudo apt upgrade.

Установка Терминала Windows (необязательно)Install Windows Terminal (optional)

В новом Терминале Windows можно использовать несколько вкладок (чтобы быстро переходить между несколькими командным строками Linux, командной строкой Windows, PowerShell, Azure CLI и т. д.), создавать пользовательские сочетания клавиш (для открытия и закрытия вкладок, копирования и вставки и т. п.), а также применять функцию поиска и пользовательские темы (цветовые схемы, стили и размеры шрифтов, а также фоновое изображение, размытие и прозрачность).The new Windows Terminal enables multiple tabs (quickly switch between multiple Linux command lines, Windows Command Prompt, PowerShell, Azure CLI, etc), create custom key bindings (shortcut keys for opening or closing tabs, copy+paste, etc.), use the search feature, and custom themes (color schemes, font styles and sizes, background image/blur/transparency). Подробнее.Learn more.

  1. Скачайте Терминал Windows из Microsoft Store: При установке через магазин обновления выполняются автоматически.Get Windows Terminal in the Microsoft Store: By installing via the store, updates are handled automatically.

  2. После установки откройте Терминал Windows и щелкните Параметры, чтобы настроить Терминал использовать файл settings.json.Once installed, open Windows Terminal and select Settings to customize your terminal using the settings.json file.

    Параметры Терминала Windows

Установка nvm, Node.js и npmInstall nvm, node.js, and npm

Существует несколько способов установки Node.js.There are multiple ways to install Node.js. Мы рекомендуем использовать диспетчер версий, так как версии меняются достаточно быстро.We recommend using a version manager as versions change very quickly. Вероятно, вам придется переключаться между несколькими версиями в зависимости от потребностей для различных проектов, над которыми вы работаете.You will likely need to switch between multiple versions based on the needs of different projects you're working on. Диспетчер версий Node Version Manager, чаще называемый nvm, является наиболее популярным средством установки нескольких версий Node.js.Node Version Manager, more commonly called nvm, is the most popular way to install multiple versions of Node.js. Мы выполним описанные ниже шаги, чтобы установить nvm, а затем используем его для установки Node.js и диспетчера пакетов Node Package Manager (npm).We will walk through the steps to install nvm and then use it to install Node.js and Node Package Manager (npm). Существуют также альтернативные диспетчеры версий, которые описаны в следующем разделе.There are alternative version managers to consider as well covered in the next section.

Важно!

Рекомендуем всегда удалять любые имеющиеся установки Node.js или npm из операционной системы перед установкой диспетчера версий, так как эти установки могут создавать необычные и запутанные конфликты.It is always recommended to remove any existing installations of Node.js or npm from your operating system before installing a version manager as the different types of installation can lead to strange and confusing conflicts. Например, версия Node, которую можно установить с помощью команды apt-get в Ubuntu, уже устарела.For example, the version of Node that can be installed with Ubuntu's apt-get command is currently outdated. Справку по удалению предыдущих установок см. на странице об удалении Node.js из Ubuntu.For help with removing previous installations, see How to remove nodejs from ubuntu.)

  1. Откройте командную строку Ubuntu 18.04.Open your Ubuntu 18.04 command line.
  2. Установите cURL (инструмент, используемый для скачивания содержимого из Интернета в командной строке), выполнив команду sudo apt-get install curl.Install cURL (a tool used for downloading content from the internet in the command-line) with: sudo apt-get install curl
  3. Установите nvm с помощью команды curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash.Install nvm, with: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

Примечание

На момент публикации этого руководства последней доступной версией nvm была версия 0.35.3.At the time of publication, NVM v0.35.3 was the most recent version available. На этой странице проекта GitHub можно проверить наличие последнего выпуска nvm. Вы можете настроить команду выше, чтобы она включала в себя последнюю версию.You can check the GitHub project page for the latest release of NVM, and adjust the above command to include the newest version. Установка новой версии nvm с помощью cURL заменит старую версию, оставив без изменений версию Node, для установки которой вы использовали nvm.Installing the newer version of NVM using cURL will replace the older one, leaving the version of Node you've used NVM to install intact. Пример: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bashFor example: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash

  1. Чтобы проверить установку, введите command -v nvm. Команда должна вернуть nvm. В случае возврата command not found (команда не найдена) или отсутствия ответа закройте терминал, откройте его снова и повторите попытку.To verify installation, enter: command -v nvm ...this should return 'nvm', if you receive 'command not found' or no response at all, close your current terminal, reopen it, and try again. Дополнительные сведения см. в репозитории nvm на сайте GitHub.Learn more in the nvm github repo.

  2. Вызовите список установленных на данный момент версий Node с помощью команды nvm ls. На этом этапе список должен быть пуст.List which versions of Node are currently installed (should be none at this point): nvm ls

    Список nvm без версий Node

  3. Установите текущий выпуск Node.js (в нем вы сможете протестировать новейшие улучшения возможностей, но вероятность возникновения проблем при этом будет велика) с помощью команды nvm install node.Install the current release of Node.js (for testing the newest feature improvements, but more likely to have issues): nvm install node

  4. Установите последний стабильный выпуск (LTS) для Node.js (рекомендуется) с помощью команды nvm install --lts.Install the latest stable LTS release of Node.js (recommended): nvm install --lts

  5. Вызовите список установленных версий Node, выполнив команду nvm ls. Теперь в нем должны отображаться две недавно установленные версии.List what versions of Node are installed: nvm ls ...now you should see the two versions that you just installed listed.

    Список nvm с версией LTS и текущими версиями Node

  6. Проверьте установку Node.js и текущую версию по умолчанию с помощью команды node --version.Verify that Node.js is installed and the currently default version with: node --version. Затем проверьте наличие npm, выполнив команду npm --version (вы также можете использовать which node или which npm, чтобы получить путь, используемый для версий по умолчанию).Then verify that you have npm as well, with: npm --version (You can also use which node or which npm to see the path used for the default versions).

  7. Чтобы изменить версию Node.js на ту, которую вы хотите использовать для проекта, создайте каталог проекта с помощью команды mkdir NodeTest и укажите каталог, выполнив команду cd NodeTest. Затем введите nvm use node, чтобы переключиться на текущую версию, или nvm use --lts, чтобы переключиться на версию LTS.To change the version of Node.js you would like to use for a project, create a new project directory mkdir NodeTest, and enter the directory cd NodeTest, then enter nvm use node to switch to the Current version, or nvm use --lts to switch to the LTS version. Вы также можете использовать определенный номер для любых установленных дополнительных версий, например nvm use v8.2.1.You can also use the specific number for any additional versions you've installed, like nvm use v8.2.1. (Чтобы просмотреть все доступные версии Node.js, используйте команду nvm ls-remote.)(To list all of the versions of Node.js available, use the command: nvm ls-remote).

Если вы используете nvm для установки Node.js и npm, не следует выполнять команду SUDO для установки новых пакетов.If you are using NVM to install Node.js and NPM, you should not need to use the SUDO command to install new packages.

Альтернативные диспетчеры версийAlternative version managers

Несмотря на то что nvm в настоящее время является самым популярным менеджером версий для Node, есть несколько альтернативных вариантов:While nvm is currently the most popular version manager for node, there are a few alternatives to consider:

  • n — это давняя альтернатива nvm, которая выполняет те же процессы с помощью немного отличающихся команд и устанавливается с помощью npm, а не скрипта bash.n is a long-standing nvm alternative that accomplishes the same thing with slightly different commands and is installed via npm rather than a bash script.
  • fnm —это более новый диспетчер версий, заявленный как более быстрый, чем nvm.fnm is a newer version manager, claiming to be much faster than nvm. (Он также использует конвейеры Azure.)(It also uses Azure Pipelines.)
  • Volta — это новый диспетчер версий, созданный командой LinkedIn. Заявлено, что он отличается увеличенной скоростью и межплатформенной поддержкой.Volta is a new version manager from the LinkedIn team that claims improved speed and cross-platform support.
  • asdf-vm — это единый интерфейс командной строки для нескольких языков, объединяющий в себе gvm, nvm, rbenv и pyenv (и много других диспетчеров).asdf-vm is a single CLI for multiple languages, like ike gvm, nvm, rbenv & pyenv (and more) all in one.
  • nvs (Node Version Switcher) — это кроссплатформенный вариант nvm с возможностью интеграции с VS Code.nvs (Node Version Switcher) is a cross-platform nvm alternative with the ability to integrate with VS Code.

Установка предпочтительного редактора кодаInstall your favorite code editor

Для проектов Node.js мы рекомендуем использовать Visual Studio Code с расширением Remote-WSL.We recommend using Visual Studio Code with the Remote-WSL Extension for Node.js projects. Это расширение преобразует VS Code в архитектуру "клиент — сервер", где клиент (пользовательский интерфейс VS Code) выполняется в вашей ОС Windows, а сервер (ваш код, Git, плагины и т. д.) — удаленно на дистрибутиве WSL Linux.This splits VS Code into a “client-server” architecture, with the client (the VS Code user interface) running on your Windows operating system and the server (your code, Git, plugins, etc) running "remotely" on your WSL Linux distribution.

Примечание

Этот удаленный сценарий немного отличается от того, к которому вы привыкли.This “remote” scenario is a bit different than you may be accustomed to. WSL поддерживает фактический дистрибутив Linux, в котором выполняется код проекта, отдельно от операционной системы Windows, но на том же локальном компьютере.WSL supports an actual Linux distribution where your project code is running, separately from your Windows operating system, but still on your local machine. Расширение Remote-WSL подключается к подсистеме Linux, как будто это удаленный сервер, хотя он не работает в облаке.The Remote-WSL extension connects with your Linux subsystem as if it were a remote server, though it’s not running in the cloud… Он по-прежнему выполняется на локальном компьютере в среде WSL, которую вы включили для запуска вместе с Windows.it’s still running on your local machine in the WSL environment that you enabled to run alongside Windows.

Текстовые редакторы на основе терминала (Vim, Emacs, nano) также полезны для внесения быстрых изменений прямо из консоли.Terminal-based text editors (vim, emacs, nano) are also helpful for making quick changes from right inside your console. (В этой статье можно ознакомиться с описанием их различий и инструкциями по использованию каждого редактора.)(This article does a nice job explaining the difference and a bit about how to use each.)

Примечание

При использовании некоторых редакторов графических пользовательских интерфейсов (Atom, Sublime Text, Eclipse) могут возникнуть проблемы с доступом к общему сетевому расположению WSL (\wsl$\Ubuntu\home)). В этом случае редактор попытается создать файлы Linux с помощью инструментов Windows, которые могут оказаться нежелательными для вас.Some GUI editors (Atom, Sublime Text, Eclipse) may run into trouble accessing the WSL shared network location (\wsl$\Ubuntu\home) and will try to build your Linux files using Windows tools, which may not be what you want. Расширение Remote-WSL в VS Code может устранить эту проблему.The Remote-WSL Extension in VS Code will handle this compatibility for you.

Чтобы установить VS Code и расширение Remote-WSL, сделайте следующее:To install VS Code and the Remote-WSL Extension:

  1. Скачивание и установка VS Code для Windows.Download and install VS Code for Windows. VS Code также доступен для Linux, но подсистема Windows для Linux не поддерживает приложения с графическим пользовательским интерфейсом, поэтому нам нужно установить его в Windows.VS Code is also available for Linux, but Windows Subsystem for Linux does not support GUI apps, so we need to install it on Windows. Не волнуйтесь, вы по-прежнему сможете выполнить интеграцию с командной строкой и инструментами Linux с помощью расширения Remote — WSL.Not to worry, you'll still be able to integrate with your Linux command line and tools using the Remote - WSL Extension.

  2. Установите расширение Remote — WSL в VS Code.Install the Remote - WSL Extension on VS Code. Это позволит вам использовать WSL в качестве интегрированной среды разработки и обеспечит совместимость и путь к ней.This allows you to use WSL as your integrated development environment and will handle compatibility and pathing for you. Подробнее.Learn more.

Важно!

Если у вас уже установлен VS Code, убедитесь, что имеете выпуск 1.35 от мая или более поздней версии, чтобы установить расширение Remote — WSL.If you already have VS Code installed, you need to ensure that you have the 1.35 May release or later in order to install the Remote - WSL Extension. Мы не рекомендуем использовать WSL в VS Code без расширения Remote — WSL, так как вы потеряете поддержку автозавершения, отладки, анализа кода и т. д. Интересный факт: это расширение WSL устанавливается в $HOME/.vscode-server/extensions.We do not recommend using WSL in VS Code without the Remote-WSL extension as you will lose support for auto-complete, debugging, linting, etc. Fun fact: This WSL extension is installed in $HOME/.vscode-server/extensions.

Полезные расширения VS CodeHelpful VS Code Extensions

Несмотря на то что VS Code поставляется с множеством возможностей для разработки Node.js, есть несколько полезных рекомендуемых расширений, доступных в пакете расширений Node.js.While VS Code comes with many features for Node.js development out of the box, there are some helpful extensions to consider installing available in the Node.js Extension Pack. Установите их все или выберите наиболее полезные для вас.Install them all or pick and choose which seem the most useful to you.

Чтобы установить пакет расширений Node.js, сделайте следующее:To install the Node.js extension pack:

  1. Откройте в VS Code окно Расширения (нажав клавиши CTRL+SHIFT+X).Open the Extensions window (Ctrl+Shift+X) in VS Code.

    Окно расширений теперь разделено на три раздела (так как вы установили расширение Remote-WSL).The Extensions window is now divided into three sections (because you installed the Remote-WSL extension).

    • "Local - Installed" (Локальные — установленные) — расширения, установленные для использования с операционной системой Windows."Local - Installed": The extensions installed for use with your Windows operating system.
    • WSL:Ubuntu-18.04-Installed — расширения, установленные для использования с операционной системой Ubuntu (WSL)."WSL:Ubuntu-18.04-Installed": The extensions installed for use with your Ubuntu operating system (WSL).
    • "Рекомендуется" — рекомендованные VS Code расширения на основе типов файлов в текущем проекте."Recommended": Extensions recommended by VS Code based on the file types in your current project.

    Сравнение расширений VS Code для локальной и удаленной среды

  2. В поле поиска в верхней части окна расширений введите: Node Extension Pack (Пакет расширений Node) (или имя любого расширения, которое необходимо найти).In the search box at the top of the Extensions window, enter: Node Extension Pack (or the name of whatever extension you are looking for). Расширение будет установлено для локальных экземпляров или WSL-экземпляров VS Code (в зависимости от того, где открыт текущий проект).The extension will be installed for either your Local or WSL instances of VS Code depending on where you have the current project opened. Это можно проверить, щелкнув удаленную ссылку в нижнем левом углу окна VS Code (выделенную зеленым цветом).You can tell by selecting the remote link in the bottom-left corner of your VS Code window (in green). Эта ссылка позволяет открыть или закрыть удаленное подключение.It will either give you the option to open or close a remote connection. Установите расширения Node.js в среде WSL:Ubuntu-18.04.Install your Node.js extensions in the "WSL:Ubuntu-18.04" environment.

    Ссылка VS Code на удаленную среду

К дополнительным рекомендуемым расширениям относятся следующие:A few additional extensions you may want to consider include:

  • Отладчик для Chrome — после завершения разработки на стороне сервера с помощью Node.js вам нужно будет выполнить разработку и тестирование на стороне клиента.Debugger for Chrome: Once you finish developing on the server side with Node.js, you'll need to develop and test the client side. Это расширение интегрирует редактор VS Code со службой отладки браузера Chrome, что увеличивает эффективность выполнения операций.This extension integrates your VS Code editor with your Chrome browser debugging service, making things a bit more efficient.
  • Раскладки клавиатуры других редакторов — эти расширения позволят использовать необходимую раскладку при переходе в другой текстовый редактор (например, Atom, Sublime, Vim, eMacs, Notepad++ и т. п.).Keymaps from other editors: These extensions can help your environment feel right at home if you're transitioning from another text editor (like Atom, Sublime, Vim, eMacs, Notepad++, etc).
  • Расширение синхронизации параметров — позволяет синхронизировать параметры VS Code в разных установках, используя GitHub.Settings Sync: Enables you to synchronize your VS Code settings across different installations using GitHub. Если вы работаете на разных компьютерах, это обеспечит согласованность среды между ними.If you work on different machines, this helps keep your environment consistent across them.

Настройка Git (необязательно)Set up Git (optional)

Чтобы настроить Git для проекта NodeJS в WSL, см. статью Начало работы с Git в подсистеме Windows для Linux в документации по WSL.To set up Git for a NodeJS project on WSL, see the article Get started using Git on Windows Subsystem for Linux in the WSL documentation.

Дальнейшие действияNext steps

Теперь у вас есть настроенная среда разработки Node.js.You now have a Node.js development environment set up. Сведения об использовании среды Node.js см. в одном из следующих руководств:To get started using your Node.js environment, consider trying one of these tutorials: