Установка Node.js в Windows
Если вы не занимались разработкой с помощью Node.js и хотите быстро начать работу, установите Node.js непосредственно в Windows, выполнив указанные ниже действия.
Если вы используете Node.js профессионально и вам нужно оптимизировать скорость и производительность, обеспечить совместимость системных вызовов, выполнять контейнеры Docker, которые используют рабочие области Linux, и не нужно использовать скрипты сборки Linux и Windows или вы просто предпочитаете использовать командную строку Bash, установите Node.js в подсистеме Windows для Linux (точнее, в WSL 2).
Установка nvm-windows, Node.js и npm
Наряду с возможностью выбора системы для разработки (Windows или WSL) при установке Node.js доступны и другие возможности. Мы рекомендуем использовать диспетчер версий, так как версии меняются достаточно быстро. Вероятно, вам придется переключаться между несколькими версиями Node.js в зависимости от потребностей для различных проектов, над которыми вы работаете. Диспетчер версий Node Version Manager, чаще называемый nvm, является наиболее популярным средством установки нескольких версий Node.js, но он доступен только для Mac и Linux и не поддерживается в Windows. Вместо этого мы рекомендуем установить средство nvm-windows, а затем с его помощью установить Node.js и диспетчер Node Package Manager (npm). Существуют также альтернативные диспетчеры версий, которые описаны в следующем разделе.
Рекомендуем всегда удалять любые имеющиеся установки Node.js или npm из операционной системы перед установкой диспетчера версий, так как эти установки могут создавать необычные и запутанные конфликты. Сюда относится удаление всех существующих каталогов установки Node.js (например, C:\Program Files\nodejs), которые могут остаться. Созданная символьная ссылка NVM не будет перезаписывать существующий (даже пустой) каталог установки. Справку по полному удалению предыдущих установок см. здесь.
NVM предназначен для установки на пользователя и вызова для каждой оболочки. Он не предназначен для общих полей разработчика или серверов сборки с несколькими агентами сборки. NVM работает с помощью символьной ссылки. Использование nvm в общих сценариях создает проблему, так как эта ссылка указывает на папку данных приложения пользователя, поэтому если пользователь x выполняется nvm use lts , ссылка будет указывать узел для всего поля в папку данных приложения. Если пользователь y запускает узел или npm, он будет направлен на запуск файлов в учетной записи пользователя x и в случае, если npm -g они будут изменять файлы x, которые по умолчанию не разрешены. Поэтому nvm назначается только для одного поля разработчика. Это также относится к серверам сборки. Если два агента сборки находятся на одной виртуальной машине или коробке, они могут конкурировать и вызывать нечетное поведение в сборках.
- Следуйте инструкциям по установке, приведенным в репозитории windows-nvm. Мы рекомендуем использовать установщик, но если вы лучше понимаете свои потребности, возможно, целесообразным будет выполнить установку вручную. Установщик перенаправит вас на страницу выпусков с информацией о последней версии.
- Скачайте последний выпуск файла nvm-setup.zip.
- После скачивания откройте ZIP-файл, а затем запустите файл nvm-setup.exe.
- Мастер установки Setup-NVM-for-Windows поможет выполнить все этапы установки, в том числе выбрать каталог, в котором будут установлены репозиторий nvm-windows и Node.js.
- Установка завершится. Откройте PowerShell (рекомендуется открыть с повышенными правами администратора) и попробуйте использовать windows-nvm, чтобы указать, какие версии узла сейчас установлены (на этом этапе они не указаны): nvm ls
- Установите текущий выпуск Node.js (в нем вы сможете протестировать новейшие улучшенные возможности, но вероятность возникновения проблем при этом будет больше, чем при использовании версии LTS) с помощью команды nvm install latest .
- Установите последний стабильный выпуск LTS Node.js (рекомендуется). Для этого сначала выполните поиск номера текущей версии LTS с помощью команды nvm list available , а затем установите версию LTS по номеру с помощью команды nvm install (замените номером, например: nvm install 12.14.0 ).
- Вызовите список установленных версий Node, выполнив команду nvm ls . Теперь в нем должны отображаться две недавно установленные версии.
- После установки требуемых версий Node.js выберите нужную версию, введя nvm use (замените нужным номером, например nvm use 12.9.0 ).
- Чтобы изменить версию Node.js на ту, которую вы хотите использовать для проекта, создайте каталог проекта с помощью команды mkdir NodeTest и укажите каталог, выполнив команду cd NodeTest . Затем введите nvm use , заменив номером версии, который вы хотите использовать (т. е. версии 10.16.3).
- Проверьте, какая версия npm установлена, с помощью npm —version . Этот номер версии автоматически изменится на номер той версии npm, которая связана с вашей текущей версией Node.js.
Альтернативные диспетчеры версий
Несмотря на то что windows-nvm сейчас является самым популярным менеджером версий для Node, есть несколько альтернативных вариантов:
- nvs (Node Version Switcher) — это кроссплатформенный вариант nvm с возможностью интеграции с VS Code.
- Volta — это новый диспетчер версий, созданный командой LinkedIn. Заявлено, что он отличается увеличенной скоростью и межплатформенной поддержкой.
Чтобы установить Volta в качестве диспетчера версий (вместо windows-nvm), перейдите в раздел Установка Windows руководства Начало работы, затем скачайте и запустите установщик Windows, следуя инструкциям.
Перед установкой Volta необходимо убедиться, что на компьютере с Windows включен режим разработчика.
Дополнительные сведения об использовании Volta для установки нескольких версий Node.js в Windows см. в документации по работе с Volta.
Установка Visual Studio Code
Рекомендуется установить Visual Studio Code для разработки с помощью Node.js в Windows. Дополнительные сведения см . в руководстве Node.js в Visual Studio Code.
Альтернативные редакторы кода
Если вы предпочитаете использовать редактор кода или интегрированную среду разработки, отличные от Visual Studio Code, для среды разработки Node.js также подходят следующие варианты:
Установка GIT
Если вы планируете работать совместно с другими пользователями или размещать проект на сайте с открытым исходным кодом (например, GitHub), примите во внимание, что VS Code поддерживает управление версиями с помощью Git. Вкладка системы управления версиями в VS Code отслеживает все изменения и содержит общие команды Git (добавление, фиксация, принудительная отправка, извлечение) прямо в пользовательском интерфейсе. Сначала необходимо установить Git для включения панели управления версиями.
- Скачайте и установите Git для Windows с веб-сайта git-scm.
- В комплект входит мастер установки, который задает вам ряд вопросов о параметрах установки Git. Рекомендуется использовать все параметры по умолчанию, если у вас нет конкретной причины изменить какой-либо из них.
- Если вы никогда не использовали Git, обратитесь к руководствам по GitHub. Они помогут вам приступить к работе.
- Мы рекомендуем добавлять GITIGNORE-файл в проекты Node. На сайте GitHub вы можете найти GITIGNORE-шаблон по умолчанию для Node.js.
Использование подсистемы Windows для Linux в рабочей среде
Использование Node.js напрямую в Windows отлично подходит для обучения и экспериментов с возможностями. Когда вы будете готовы создавать готовые к работе веб-приложения, которые обычно развертываются на сервере под управлением Linux, мы рекомендуем использовать подсистему Windows для Linux версии 2 (WSL 2) для разработки веб-приложений Node.js. Многие пакеты и платформы Node.js создаются с помощью среды *nix, а большинство приложений Node.js развертываются в Linux, поэтому разработка в WSL обеспечивает согласованность между средой разработки и рабочей средой. Дополнительные сведения о настройке среды разработки WSL см. в статье Настройка среды разработки Node.js в подсистеме Windows для Linux версии 2.
В достаточно редкой ситуации, когда вам требуется разместить приложение Node.js на сервере Windows, лучше использовать обратный прокси-сервер. Это можно сделать двумя способами: 1) с помощью iisnode или напрямую. Эти ресурсы не поддерживаются. Мы рекомендуем использовать серверы Linux для размещения приложений Node.js.
Использование модуля path¶
Модуль Node.js Path является встроенным и предоставляет набор функций для работы с путями в файловой системе.
const path = require('path');
Наиболее часто используемые методы Node.js Path:
basename() — возвращает конечную часть пути, первым параметром принимает путь, вторым необязательным аргументом — расширение файла, которое нужно убрать из возвращаемого результата;
path.basename('/srv/app/app.js'); //app.js path.basename('/srv/app/app.js', '.js'); //app
dirname() — возвращает директорию переданного пути;
path.dirname('/srv/app/app.js'); // \srv\app
extname() — возвращает расширение файла переданного пути;
path.extname('/srv/app/app.js'); //.js
isAbsolute() — булевое значение, true , если переданный путь является абсолютным;
path.isAbsolute('/srv/app/app.js'); //true path.isAbsolute('srv/app/app.js'); //false
join() — принимает неограниченное количество составных частей пути, включая возвраты в родительские директории, и возвращает полученный в результате путь;
path.join('/srv/app', '../config/..', 'app/app.js'); // \srv\app\app.js
normalize() — приводит к корректному и оптимальному виду переданный путь;
path.normalize('/srv//app///app.js'); // \srv\app\app.js
parse() — разбирает переданный путь на элементы и возвращает объект со следующими свойствами:
- root — корень пути;
- dir — директория;
- base — конечная часть пути;
- ext — расширение файла;
- name — имя файла (директории) без расширения;
relative() — принимает два пути и возвращает относительный путь от первого ко второму;
1 2 3 4
path.relative( '/srv/app/app.js', '/srv/config/default.conf' ); // ..\..\config\default.conf
resolve() — принимает составные части пути и возвращает абсолютный путь полученного в результате обработки переданных сегментов пути.
path.resolve('/srv/app', 'app.js'); // D:\srv\app\app.js
3. Установка и запуск
Ну что, время завязывать со всякой нудной теорией и переходить к практике. Сейчас мы посмотрим как установить Node.JS, как на нем выполнять скрипты и немножко залезем в документацию. Для этого я первым делом зайду на сайт http://nodejs.org. Здесь есть такая большая кнопка, которая, как правило, позволяет скачать пакет наиболее подходящий для вашей ОС. Вначале посмотрим, что с Mac OS. С Mac OS все просто, мы жмем на кнопку, скачиваем «node-v4.4.7.pkg», запускаем его, все подтверждаем, все очень очевидно, мы не будем это рассматривать, ошибиться тут не возможно.
Следующее это Linux. С Linux все чуть сложнее, потому что в Linux обычно есть различные пакеты, но в пакетах не самая новая версия, а при работе с Node.JS лучше использовать последние версии, если нет каких-то особых причин так не делать. Так что если вы ставите из пакета, то убедитесь, что версия именно последняя. Если у вас пакет устарел, то Node.JS замечательно компилируется из исходников. Для этого можно загуглить «nodejs linux» в первых пяти ссылках обязательно будет инструкция по установке. Можете загуглить установку под какую то определенную систему например «node.js debian» и вы тоже находите инструкцию на первой же странице. Если вы пользуетесь Linux, то этот процесс не составит для вас особого труда.
Ну и наконец Windows. нажимаем на кнопку и скачиваем «node-v4.4.7-x64.msi» —
после того как он скачался, запускаю и соглашаюсь со всем, что предложит операционная система, все по умолчанию. Отлично Node.JS установился. Установился он в C:\Program Files\nodejs и тут есть как файл node.exe так и npm.cmd. NPM это пакетный менеджер мы рассмотрим его немножко позже.
Node.JS когда ставится прописывает себя в переменную PATH. Чтобы в этом удостовериться можете проделать следующее — в Windows 10 нажимаете правой кнопкой мыши на значок «windows», который некогда был «пуск». В появившемся окне выбираем «система»
далее жмем на «Дополнительные параметры системы», потом «переменные среды.
Перед нами появилось окно «переменные среды» в котором нас интересует записи в среду PATH. Причем не важно для всех пользователей или для вашего пользователя (в нижнем окне или в верхнем) главное, что присутствуют записи «C:\Users\ASUS\AppData\Roaming\npm» и «C:\Program Files\nodejs\». Теперь проверим работает ли Node.JS в принципе. Для этого в любой папке или на «Рабочем столе» при зажатой клавише «Shift» нажимаем правую кнопку мыши и выбираем «Открыть окно команд» такой трюк позволяет нам открыть консоль с прописанным путем в ту папку в которой мы нажали правую кнопку мыши. Другой способ открыть консоль через меню «пуск». Нажимаем правой кнопкой мыши меню «пуск», выбираем «Командная строка».
Итак мы запустили консоль. Вводим команду «node» и у нас появляется приглашение ввести javascript выражение. Это так называемый режим «repl» когда можно вводить javascript выражения и они выполняются.
Дважды нажав сочетание клавиш «Ctrl + c» мы выходим из этого режима. Вообще этот режим используется достаточно редко, здесь мы его используем просто, чтоб проверить, что установка прошла успешно. Конечно же такой запуск должен работать не только в «Windows», а и из любой операционной системы.
Как правила под Node.JS запускают файлы. Например создадим файл «1.js» и запишем в нем команду:
Node.js File Paths
You need to pay attention when using paths in your applications, as this difference must be taken into account.
You include this module in your files using const path = require(‘node:path’); and you can start using its methods.
Getting information out of a path
Given a path, you can extract information out of it using those methods:
- dirname : gets the parent folder of a file
- basename : gets the filename part
- extname : gets the file extension
Example
const path = require('node:path'); const notes = '/users/joe/notes.txt'; path.dirname(notes); // /users/joe path.basename(notes); // notes.txt path.extname(notes); // .txt
JavaScript
You can get the file name without the extension by specifying a second argument to basename :
path.basename(notes, path.extname(notes)); // notes
JavaScript
Working with paths
You can join two or more parts of a path by using path.join() :
const name = 'joe'; path.join('/', 'users', name, 'notes.txt'); // '/users/joe/notes.txt'
JavaScript
You can get the absolute path calculation of a relative path using path.resolve() :
path.resolve('joe.txt'); // '/Users/joe/joe.txt' if run from my home folder
JavaScript
In this case Node.js will simply append /joe.txt to the current working directory. If you specify a second parameter folder, resolve will use the first as a base for the second:
path.resolve('tmp', 'joe.txt'); // '/Users/joe/tmp/joe.txt' if run from my home folder
JavaScript
If the first parameter starts with a slash, that means it’s an absolute path:
path.resolve('/etc', 'joe.txt'); // '/etc/joe.txt'
JavaScript
path.normalize() is another useful function, that will try and calculate the actual path, when it contains relative specifiers like . or .. , or double slashes:
path.normalize('/users/joe/..//test.txt'); // '/users/test.txt'
JavaScript
Neither resolve nor normalize will check if the path exists. They just calculate a path based on the information they got.
Copyright OpenJS Foundation and Node.js contributors. All rights reserved. The OpenJS Foundation has registered trademarks and uses trademarks. For a list of trademarks of the OpenJS Foundation, please see our Trademark Policy and Trademark List. Trademarks and logos not indicated on the list of OpenJS Foundation trademarks are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.