Установка мультиверсионной ноды под Windows
Время написания: 2019-06-24
Время обновления: 2019-06-29 00:00Автор: девушка-призрак.
Цель: Эта статья призвана дать Xiaobai
Введение: В этой статье вы можете быстро понятьчто такое node.js;Понимание выпусков Node.js;Схемы управления версиями узлов и разница между схемами;Разница между n, nvm, nvmw, nvm-windows.
Примечания: эта статья
整理及编写
Некоторые знания, связанные с установкой узла, предназначены только для справки.Если описание неуместно, пожалуйста, прокомментируйте и поправьте меня.Я также с нетерпением жду вашего участия в написании.условие:
更新完毕,待完善
2019-06-29
[TOC]
Официальный сайт Node.js
Связь между JavaScript, Node.js и V8
Пожалуйста, нажмите на цитируемый текстСвязь между JavaScript, Node.js и V8Разработчики, знакомые с Node, знают, что Node — это среда выполнения, разработанная на основе движка Chrome V8, которая позволяет выполнять JavaScript на стороне сервера. С одной стороны, он предоставляет множество вызываемых API, таких как чтение и запись файлов, сетевые запросы, системная информация и т. д. С другой стороны, поскольку ЦП выполняет машинный код, он также отвечает за интерпретацию кода JavaScript в последовательность машинных инструкций для выполнения.Эта часть работы выполняется двигателем V8.
1. Node.js
Node.js — это среда выполнения JavaScript, основанная на движке Chrome V8. Node.js использует управляемую событиями неблокирующую модель ввода-вывода, что делает ее легкой и эффективной. npm, менеджер пакетов для Node.js, является крупнейшей в мире экосистемой библиотек с открытым исходным кодом.
1.1 Что такое node.js
- Это среда выполнения Javascript
- Использование движка Chrome V8 для интерпретации кода
- Легкий и масштабируемый, подходит для приложений взаимодействия с данными в реальном времени.
JS Node.js - это среда выполнения (короткая, может быть решена, выполнять код JS): это не язык / библиотека / рамки. На самом деле, изучать разработку веб-сервера, Node.js использует программу Javasctipt, работающую на двигателе JavaScript (Chrome V8), в отличие от другого языка, для запуска на сервере (Apache, Naginx, IIS Tomcat) на других HTTP-серверах. Это не здание на вершине любого серверного программного обеспечения. Node.js Дизайн с классической архитектурой лампы (лампа = Linux + Apache + MySQL + PHP) очень отличается, может обеспечить мощную масштабируемость.
- (1) JavaScript в Node.js не имеет BOM и DOM, только EcmaScript (базовый синтаксис), потому что сервер не управляет страницей
- (2) В среде выполнения javascript Node он предоставляет некоторые API-интерфейсы для работы на уровне сервера для js (чтение и запись файлов, создание сетевых служб, сетевое взаимодействие, http-сервер и т. д.).
1.2 Возможности Node.js
- Возможности Node.js (устранение узких мест производительности сервера):
- один поток
- Не блокировка ввода / вывода (асинхронные в простых условиях)
- управляемый событиями
- Кроссплатформенность
Прежде всего, если вы хотите понять особенности node.js, вам может понадобиться сначала понять js:同步&异步
,线程&进程
,事件循环、宏任务、微任务
один поток
В серверных языках, таких как Java, PHP или .net, для каждого клиентского соединения создается новый поток. И каждый поток должен потреблять около 2 МБ памяти. То есть теоретически максимальное количество пользователей, которые могут быть одновременно подключены к серверу с 8 ГБ памяти, составляет около 4000 человек. Чтобы веб-приложение поддерживало больше пользователей, необходимо увеличить количество серверов, и, конечно же, стоимость оборудования для веб-приложения возрастает.
Вместо создания нового потока для каждого клиентского подключения Node.js просто использует один поток. Когда пользователь подключается, запускается внутреннее событие, и благодаря неблокирующему вводу-выводу и механизму, управляемому событиями, программа Node.js является макроскопически параллельной. Используя Node.js, сервер с 8 ГБ оперативной памяти может обрабатывать более 40 000 одновременных пользовательских подключений. Кроме того, преимущества, приносимые одним потоком, и операционная система больше не тратят время на создание и уничтожение потока, а коэффициент использования однопоточного ЦП всегда составляет 100%. Недостатком является то, что один пользователь вызвал сбой потока, сбой всей службы и всех остальных.
Сравнение многопоточного и однопоточного:
Другими словами, один поток также может вызывать макроскопический «параллелизм».
Сам по себе один поток имеет следующие недостатки:
1. Невозможно использовать многоядерный процессор 2. Ошибки приведут к закрытию всего приложения, и необходимо учитывать надежность приложения. 3. Большое количество вычислений, занимающих ЦП, будет блокировать работу программы Строго говоря, Node не является настоящей однопоточной архитектурой.У самой Node есть определенные потоки ввода/вывода.Эти потоки ввода/вывода обрабатываются базовой libuv, что означает, что Node по-прежнему является многопоточным при доступе к системному вводу/выводу. , Для определенных операций, таких как чтение файла, SQL-запрос и сетевой запрос, Node по-прежнему использует многопоточность для обработки, чтобы обеспечить эффективность обработки Node.
Чтобы решить проблему использования ЦП одним потоком, Node использует многопроцессорную архитектуру, которая представляет собой знаменитый режим Master-Worker, также известный как режим master-slave.Как показано на рисунке ниже, это типичное распределение параллельных процессинговый бизнес Архитектура обладает лучшей масштабируемостью и стабильностью. Все процессы, скопированные Node через fork(), являются независимыми процессами. В этом процессе есть независимые экземпляры V8. Каждому независимому процессу требуется не менее 30 миллисекунд времени запуска и не менее 10 МБ памяти, хотя процесс fork() имеет определенные функции. стоит дорого, но может улучшить использование многоядерных процессоров, что все еще очень полезно сегодня, когда процессоры, как правило, многоядерные.В то же время мы также должны понимать, что Node может решать большие проблемы параллелизма в одном потоке через метод, управляемый событиями.Проблема запуска нескольких процессов заключается в том, чтобы полностью использовать ресурсы ЦП.
В многопроцессорном режиме Node Master-Worker главный процесс и рабочий процесс взаимодействуют посредством передачи сообщений вместо совместного использования ресурсов или непосредственного манипулирования ими.После создания рабочего процесса с помощью fork() между главным процессом и рабочий процесс. Канал, для контента, связанного с несколькими процессами, Node официально предоставляет модуль кластера для управления процессами. Для связанного контента, пожалуйста, обратитесь к кластеру.
Что касается надежности приложения, мы также можем использовать вышеупомянутый режим Master-Worker.Мастер-процесс отвечает только за управление рабочим процессом, а конкретная бизнес-обработка выполняется рабочим процессом.Прослушивание события uncaughtException в рабочий процесс может перехватывать неизвестные исключения. Затем сообщить основному процессу, что основной процесс пересоздает рабочий процесс в соответствии с политикой, или выйти из основного процесса напрямую. В этом случае код должен предоставить достаточно информации журнала, чтобы вовремя сгенерировать сигнал тревоги через задачу мониторинга журнала.
Неблокирующий ввод-вывод Неблокирующий ввод-вывод
Например, при доступе к базе данных для получения данных требуется некоторое время. В традиционном однопоточном механизме обработки после выполнения кода для доступа к базе данных весь поток будет приостановлен и будет ждать, пока база данных вернет результат, прежде чем выполнять следующий код. Другими словами, ввод-вывод блокирует выполнение кода, что значительно снижает эффективность выполнения программы.
Поскольку в Node.js принят неблокирующий механизм ввода-вывода, после выполнения кода для доступа к базе данных код, стоящий за ним, будет выполнен немедленно, а код обработки результата, возвращенного базой данных, будет помещен в функция обратного вызова (очередь событий). ), тем самым повышая эффективность выполнения программы.
Когда определенный ввод-вывод завершен, поток, выполняющий операцию ввода-вывода, будет уведомлен в виде события, и поток выполнит функцию обратного вызова этого события. Для обработки асинхронного ввода-вывода поток должен иметь четный цикл, который постоянно проверяет (в очереди событий) необработанные события и обрабатывает их по очереди.
В режиме блокировки поток может обрабатывать только одну задачу, а многопоточность необходима для повышения пропускной способности. В неблокирующем режиме поток всегда выполняет вычислительные операции, и использование ядра ЦП этого единственного потока всегда составляет 100%. Итак, это сугубо философское решение: вместо того, чтобы иметь много людей, но много людей без дела, лучше быть одному и работать до смерти.
событийный
В Node, когда клиент запрашивает установление соединения, отправку данных и другие действия, будут инициированы соответствующие события. В Node за раз может выполняться только одна функция обратного вызова события, но в середине выполнения функции обратного вызова события можно включить обработку других событий (например, подключение нового пользователя), а затем вернуться, чтобы продолжить выполнение исходное событие Функция обратного вызова, этот механизм обработки, называется механизмом «цикла событий».
Нижний слой Node.js — это C++ (V8 также написан на C++). Почти половина базового кода используется для построения очередей событий и очередей функций обратного вызова. Использование управления событиями для завершения планирования задач сервера, это может придумать только призрак. Танец на кончике иглы, с одной ниткой, берет на себя задачу решения очень большого количества задач.
Связь между функциями node.js
单线程,单线程
Преимущество сокращения накладных расходов на память заключается в подкачке памяти операционной системы.
Если что-то входит, но блокируется вводом-выводом, поток блокируется.
非阻塞I/O,
Он не будет ждать окончания оператора ввода-вывода, а выполнит следующий оператор.
非阻塞就能解决问题了么?比如执行着小红的业务,执行过程中,小刚的I/O回调完成了,此时怎么办? ?
事件机制,事件环
, будь то запрос нового пользователя или завершение ввода-вывода старого пользователя, он будет добавлен в кольцо событий в режиме события, ожидая планирования.
Говорят, что есть три характеристики, но на самом деле это одна характеристика. Node.js похож на скупого владельца ресторана, который нанимает только 1 официанта, чтобы обслужить много людей. В результате он более эффективен, чем многие официанты. Все операции ввода-вывода в Node.js являются асинхронными, используются функции обратного вызова и наборы функций обратного вызова.
Кроссплатформенность
Когда Node был впервые выпущен, он мог работать только на платформе Linux. Позже Node был изменен на архитектурном уровне, и между Node и операционной системой был введен слой libuv для достижения кросс-платформенности. Кроссплатформенность относится к ПК, мобильным устройствам, Web/H5.
1.3 Преимущества, недостатки и решения использования Node.js
преимущество
Характеристики Node.js также являются его преимуществами, которые можно резюмировать как
- Высокий параллелизм (наиболее важное преимущество)
- Идеально подходит для приложений с интенсивным вводом-выводом
Высокая степень параллелизма является одним из факторов, которые необходимо учитывать при проектировании архитектуры распределенной системы Интернета.Обычно это означает, что проект гарантирует, что система может обрабатывать множество запросов параллельно в одно и то же время.
О высоком параллелизме (), чтобы узнать больше, перейдите по следующей ссылке:
-
Говорите о высоком параллелизме каждый день, знаете ли вы, что такое высокий параллелизм? Как говорится, говорите о высоком уровне параллелизма, чтобы убедиться, что вы понимаете(рекомендуется к прочтению)
недостаток
Это характеристики Node.js, поэтому он также имеет много недостатков
-
1、不适合CPU密集型应用
;- Проблемы, создаваемые приложениями с интенсивным использованием ЦП для Node, в основном заключаются в следующем: из-за одного потока JavaScript, если есть длительные вычисления (например, большой цикл), квант времени ЦП не будет освобожден, так что последующие I /O не может быть инициирован;
- Решение: разбивайте большие вычислительные задачи на несколько небольших задач, чтобы можно было своевременно запускать операции, не блокируя инициацию вызовов ввода-вывода;
2、只支持单核CPU,不能充分利用CPU
-
3、可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
- Причина: один процесс, один поток
- решение: (1) обратный прокси-сервер Nginx, балансировка нагрузки, открытие нескольких процессов, привязка нескольких портов; (2) Откройте несколько процессов для мониторинга одного и того же порта и используйте модуль кластера;
4、开源组件库质量参差不齐,更新快,向下不兼容
5、Debug不方便,错误没有stack trace
1.4 Поля, подходящие для узла
- Интернет
- Электронная коммерция
- Процесс оплаты
- социальные сети
- обслуживание в режиме реального времени
- СМИ
- Корпоративные веб-службы
- ... подробнее см. применимые сценарии node.js ниже
1.5 Для каких приложений подходит Node.js?
node.js善于I/O不善于计算
, потому что лучше всего работает узел任务调度
, если в вашем бизнесе много вычислений ЦП, это фактически эквивалентно тому, что компьютер блокирует этот единственный поток, что не подходит для разработки узла
Node очень удобен, когда приложению необходимо обрабатывать множество одновременных операций ввода-вывода (асинхронных операций) без очень сложной обработки внутри приложения перед отправкой ответа клиенту. Node.js также очень подходит для работы с веб-докером для разработки интерактивных приложений в реальном времени с длительными соединениями. Например:
- Избранное пользовательской формы
- экзаменационная система
- чат
- Живая графика
- Предоставьте json API (используется для внешнего интерфейса Angular)
Если вы понимаете характеристики и принципы очереди событий, стека выполнения и асинхронности программы, работающей в памяти js, вы можете легко решить, когда она подходит для разработки с помощью node.js. Ответ на приведенный выше вопрос, если проанализировать с точки зрения стека выполнения и очереди событий, таков:
Поток должен сначала обработать задачи в стеке выполнения, прежде чем поместить событие в начале очереди из очереди событий в стек выполнения, и так до тех пор, пока событие в очереди событий не станет пустым. Если в стеке выполнения есть много задач перед отправкой асинхронного запроса, очередь событий должна быть помещена в очередь на определенный период времени.排队时间太长,就不适合用node来开发
, и на самом деле в основном большинство проектов будут использовать node.js.
1.6 Сценарии, подходящие для Node.js
Что ж, разобравшись, какие приложения подходит для разработки node.js, давайте рассмотрим сценарии, которые подходят для NodeJS:
RESTful API
Это самый идеальный сценарий применения NodeJS, который может обрабатывать десятки тысяч подключений, логики в самой по себе не так много, нужно только запросить API и организовать данные для возврата. По сути, он просто ищет какие-то значения из какой-то базы данных и компонует их в ответ. Поскольку ответ представляет собой небольшой объем текста, а входящий запрос также представляет собой небольшой объем текста, трафик невелик, и одна машина может удовлетворить потребности в API даже самых загруженных компаний.
УИ слой унифицированного веб-приложения
Текущая архитектура MVC, в некотором смысле веб-разработка, имеет два слоя пользовательского интерфейса, один из которых мы, наконец, видим в браузере, а другой находится на стороне сервера, отвечая за генерацию и сращивание страниц. Я не буду обсуждать, хороша эта архитектура или плоха, но есть другая практика, сервис-ориентированная архитектура, которая лучше разделяет внешние и внутренние зависимости. Если вся ключевая бизнес-логика инкапсулирована в вызовы REST, это означает, что верхнему уровню нужно только рассмотреть, как использовать эти интерфейсы REST для создания конкретных приложений. Этим внутренним программистам все равно, как определенные данные передаются с одной страницы на другую, и им все равно, получаются ли обновления пользовательских данных асинхронно через Ajax или путем обновления страницы.
Приложения с большим количеством Ajax-запросов
Например, в персонализированном приложении каждый пользователь видит отдельную страницу, кеш недействителен, и при загрузке страницы необходимо инициировать запрос Ajax.NodeJS может отвечать на большое количество одновременных запросов. В целом, NodeJS подходит для сценариев с высокой степенью параллелизма, интенсивным вводом-выводом и небольшим объемом бизнес-логики.
Несколько примеров сценариев использования Node.js:
- Веб-сайт (например, экспресс/коа и т. д.)
- я в чате (socket.io)
- API (мобильный терминал, ПК, h5)
- HTTP-прокси (у всех есть Taobao, Qunar, Tencent, Baidu)
- Инструменты сборки интерфейса (grunt/gulp/bower/webpack/fis3…)
- Написать операционную систему (NodeOS)
- Кроссплатформенные инструменты упаковки (electron, nw.js на стороне ПК, такие как клиент DingTalk для ПК, IDE апплета WeChat, клиент WeChat, мобильная кордова, старая версия Phonegap и более известная универсальная среда разработки ionicframework)
- Инструменты командной строки (например, cordova, shell.js)
- Обратный прокси (например, anyproxy, node-http-proxy)
- Редактор Atom, VSCode и т. д.
Можно сказать, что программное обеспечение, которое каждый может видеть и использовать, имеет Node.js, и большинство самых популярных методов написания программного обеспечения основано на Node.js. Метод написания — React+ Redux. В будущем сценарии применения Node.js станут более обширными. узнать большеRes или Fox на GitHub.com/sin….
1.7 Сценарии, не подходящие для Node.js
- 1. Приложения с интенсивными вычислениями
- 2. Однопользовательская многозадачная программа
- 3. Логика очень сложные транзакции
- 4. юникод и интернационализация
2. Зачем устанавливать несколько версий Node.js
2.1 Говоря о нескольких установленных версиях Node.js
Прежде всего, прежде чем ответить на этот вопрос, рекомендуется ознакомиться сИстория Node.js, Однако теперь вам не нужно думать об этом типе многоверсионной установки, и вам не нужно думать о том, использовать ли io.js или node.js для разработки. Поскольку теперь io.js и node.js объединены, подробности см.和解方案Reconciliation Proposal
. Однако нам все еще нужно понять, почему вам нужно рассмотреть возможность установки нескольких версий node.js перед слиянием.
До слияния io.js и node.js мы обычно использовали:
- Версия сообщества — io.js
- Официальная версия сайта - node.js
Оба разработаны на базе двигателя V8. Теперь нам просто нужно рассмотреть, является ли установленная версия нечетной или четной, LTS или Current, пожалуйста, прочитайте эту главу.2.2 Причины установки нескольких версий.
Мультиверсия означает:
-
1. До объединения io.js и node.js установка нескольких версий Node.js фактически является установкой io.js и node.js. Поскольку io.js имеет много новых функций, а node.js — стабильная версия, многие новые функции не поддерживаются node.js. Версия сообщества обновляется очень быстро и имеет много новых функций, но многие среды проектов не поддерживают эти новые функции, поэтому иногда вам нужно переключаться между io.js и node.js, вам нужно установить io.js и node.js .
-
2. Теперь нам просто нужно рассмотреть, является ли установленная версия нечетной или четной, LTS или Current Вообще говоря, мы устанавливаем две версии, рекомендованные официальным сайтом: версию LTS и текущую версию, поэтому для будущих версий мы обычно ссылаемся на версию LTS и текущую версию, представленную на официальном сайте.
-
3. Несколько версий могут быть двумя версиями или более чем двумя версиями.
2.2 io.js
io.js (JavaScript I/O) — это новая ветвь Node.js, совместимая с платформой NPM. Основные разработчики Node.js вводят больше функций ES6 на основе Node.js. Его цель — обеспечить более быстрое предсказуемое и предсказуемые циклы выпуска.
2.2.1 Цель io.js
- Непрерывная интеграция
- 100% тест проходит как нормальное состояние
- Строго совместимая с SemVer версия
- Авторские права отправителя, вне контроля компании
- Прозрачный контроль поиска консенсуса.
- Публикуется еженедельно
- Поддержка версии V8
- активное развитие
- предсказуемый путь
- общественный союз Поскольку io.js и node.js были объединены, io.js также называют node.js. Так что и io.js, и node.jsОфициальный сайтэто то же самое.
2.3 Причины установки нескольких версий
Мы часто сталкиваемся с такой ситуацией в нашей повседневной разработке: у нас есть несколько проектов, и у каждого проекта разные требования, а значит, разные проекты должны полагаться на разные версии среды выполнения NodeJS.
А LTS представляет собой постоянно пересматриваемую и улучшаемую версию, включающую в себя последние функции платформы Node.js. Иногда среда, которая нам нужна в нашем проекте, не поддерживает новые возможности ноды, поэтому нам нужно перейти на LTS-версию, если при этом вы хотите изучить новые возможности, то вам нужна актуальная версия.
В-третьих, понять Node.js версия выпущена
Node.js 的发布是 以时间的流逝为准
, пропускать версии, исходя из предположения, что совместимость близка, а не из-за количества совместимости и новых функций, что также объясняет, почему версия Node.js, кажется, скачет так быстро.
Все больше и больше разработчиков выбирают Node.js в качестве платформы для разработки. Однако из-за многочисленных версий Node.js для новичков становится проблемой выбрать, какую версию выбрать. В этой статье кратко представлены правила выпуска версий Node.js в качестве справочника для новичков при выборе версии. Обратите внимание, что содержание этой статьи предназначено только для того, чтобы помочь решить одну из первых проблем, с которыми необходимо столкнуться при выборе версии, а не все
3.1 Процесс выпуска Node.js
Вы можете перейти на официальный сайтО выпуске версииДля удобства понимания ниже представлена обзорная инфографика моего выпуска версии на официальном сайте сегодня (2019-6-24):
Обратите внимание, что следующие инструкции являются текущими, и в прошлом развитии Node.js могли быть разные подходы или исключения. Вот некоторые ключевые моменты процесса выпуска Node.js:
- Основная версия выпускается каждые 6 месяцев (т. е. изменение основного номера), как Текущая версия
- Месяц выпуска:
4月发布偶数版本
,10月发布奇数版本
- Каждые 12 месяцев выпуск обновляется до выпуска LTS. Да, только выпуски с четными номерами (обычно при выпуске их последующих выпусков с нечетными номерами)
- Версия LTS проходит две фазы: активная и техническое обслуживание.
活跃期(Active)共18个月,主要在不改变兼容性的情况下,周期性修改自身Bug与合并其他版本的重要修改
维护期(Maintenance)共12个月,只负责修改本版本的Bug以及特别紧急的如安全性问题或者文档更新
.
后面有详细介绍semver/Major/版本号命名规则,请查看本文3.5章节
. или пойтиsemver官网
Ознакомьтесь с подробным введением в семвер https://semver.org/lang/zh-CN/
3.2 Скачать с официального сайта Node.js
Когда пользователи посещают официальный сайт Node.js, наиболее важные страницы загрузки, с которыми они сталкиваются, следующие:
или:
Видно, что в основном рекомендуются к скачиванию две версии: 10.16.0 и 12.4.0,
согласно сСеверная версияПервое число 10 или 12 указанной версии представляет номер основной версии.后面有详细介绍semver/Major,请查看本文3.5章节
. или пойтиsemver官网
Ознакомьтесь с подробным введением в семвер https://semver.org/lang/zh-CN/
3.3 Разница между LTS и Current
- LTS — долгосрочная поддержка
- Текущий - текущий Вы можете понять это так: версия LTS
相对
Стабильная версия, текущая версия является бета-версией
Текущая представляет собой последнюю выпущенную версию (каждые 6 месяцев), это может быть нечетная или четная версия. Поскольку он актуален, он содержит последние функции платформы Node.js.
А LTS представляет собой версию, которая постоянно пересматривается и улучшается.
Одновременно существует только одна текущая версия, может быть 3 версии LTS и 2 версии LTS-Active.
Версия LTS, указанная на официальном сайте Node.js, всегда является последней версией LTS (в настоящее время 10.16.0), согласно сплан выпуска, эта версия находится в активном периоде (Ative), мы видим, что ее MINOR версия находится в процессе непрерывного обновления.
3.4 ЛТС (долгосрочная поддержка)
3.4.1 План Node.js LTS
После слияния Node.js и io.js ядро Node.js начало использовать LTS (долгосрочную поддержку) для планирования цикла выпуска, чтобы обеспечить стабильный и упорядоченный выпуск и позволить разработчикам разумно организовывать обновления. Первым выпуском LTS была версия 4, выпущенная в октябре 2015 года. В соответствии с этим планом версия Node.js эквивалентна стабилизированному снимку основной ветки в определенное время.Когда время истечет, стабильная часть основной ветки будет интегрирована и будет выпущена новая версия.Поэтому , выпуск Node.js имеет преимущество с течением времени, и переход к версии должен основываться на предпосылке обеспечения близкой совместимости, а не на количестве совместимости и новых функциях, что также объясняет, почему версия Node.js, кажется, так быстро прыгает (не ""Ах, мы сохранили так много больших ходов, мы можем выпустить новую версию!" Вместо этого: "Ах, пришло время для релиза в апреле, мы пройдем большие шаги мы сохранили и посмотрим, есть ли что-нибудь достаточно стабильное, чтобы добавить, хотя, возможно, эти трюки не так уж важны...»).
Стоит отметить, что текущие вечнозеленые браузеры/основные движки JavaScript/стандарты ECMAScript/стандарты C++ также используют аналогичные принципы, берут временной интервал в качестве эталона и выпускают стабильные функции из основы.
Каждый LTS будет иметь кодовое имя, взять имя элемента из таблицы Менделеева, отсортировать его по алфавиту и выбрать подходящее.
- Кодовое название версии 4 — Argon.
- Кодовое название v6 — Борон.
- Кодовое название v8 — Carbon (карбон).
- Кодовое название v10 — Dubnium.
Правила именования версий Node.js следуютsemver
Semantic Versioning, номер версии разделен на три части,后面有详细介绍semver,请查看本文3.5章节
. идтиsemver官网
Ознакомьтесь с подробным введением в семвер https://semver.org/lang/zh-CN/,
- Первое число (semver-major) увеличивается, указывая на несовместимое изменение;
- Второе число (semver-minor) увеличено, что указывает на наличие новых функций для обеспечения совместимости;
- Третье число (semver-patch) увеличивается для обозначения изменений, сохраняющих совместимость и функции неизменными, таких как исправления ошибок или улучшения документации.
У этого правила именования есть преимущества и недостатки, и я не буду вдаваться в подробности здесь, но некоторые из его противоречий делают Node.js именованием некоторых исключений.основная версия, тоже еще семвер-минор, перейти кsemver官网
Ознакомьтесь с подробным введением в семвер https://semver.org/lang/zh-CN/,
3.4.2 срок службы LTS
Пожалуйста, перейдите кВыпуск ветки git для node.jsУзнайте больше о LTS на https://github.com/nodejs/Release.
current(1.4~1.10)
-
LTS
current
: с апреля по октябрь первого года- В настоящее время Node.js будет разветвляться от мастера каждый апрель, собирать достаточно стабильных функций и выпускатьmajorверсии с четными номерами (например, v6.0.0) в качестве кандидатов на следующую LTS. В течение 6-месячного периода с апреля по октябрь того же года четная версия называется «текущей» (например, v6.0.0 «текущая»). После получения отзывов от сообщества в этой версии будут исправлены ошибки, добавлены новые функции, продолжатся улучшения и могут быть удалены некоторые улучшения, которые слишком сильно влияют на совместимость.В настоящее время второстепенная версия этой версии будет продолжать увеличиваться. Разработчики могут использовать это время для тестирования своих приложений в автономном режиме с помощью этого кандидата на выпуск LTS и сообщать о проблемах совместимости и ошибках разработчикам Node.js.
active(1.10~3.4)
-
LTS
active
: с октября первого года по апрель третьего года- К октябрю того же года эта четная версия станет LTS (например, v6.9.0 «LTS»), когда она также известна как «активная LTS». В течение 18-месячного активного периода в этой версии почти не будет несовместимых изменений, и не будет производиться никаких серьезных обновлений зависимостей, кроме OpenSSL, связанных с безопасностью (например, v8). В течение этого времени разработчики могут обновить онлайн Node.js до этой стабильной LTS-версии и использовать новые функции Node.js.
maintenance(3.4~4.4)
-
LTS
maintenance
: с апреля третьего года по апрель четвертого года- После активного периода в 18 месяцев, в апреле третьего года, эта версия откроет последний 12-месячный период обслуживания, в течение которого она будет обновляться только с обновлениями безопасности и исправлениями ошибок. Поскольку Node.js производит LTS каждый октябрь, новая активная LTS будет рождаться в 2/3 узлов в активный период этой версии (в настоящее время в v4 LTS и 6 месяцев активной активности, v6 момент времени, когда LTS активна). был выпущен). К концу активного периода у разработчиков есть 6 месяцев для перехода на следующую активную LTS. Даже если прогресс обновления для разработчиков относительно медленный, все еще есть 12 месяцев времени обслуживания, поэтому поторопитесь и обновитесь. Через 12 месяцев этот LTS завершит свою жизнь без каких-либо обновлений. Таким образом, каждая четная версия будет иметь срок службы 3 года.
3.4.3 Как эта LTS соответствует исходному коду Node.js?
Во-первых, репозиторий Node.js на Github имеет главную ветку, и большинство коммитов отправляются в эту ветку через PR. В зависимости от того, меняют ли эти коммиты совместимость или вводят новые функции, они помечаются какsemver-majorИли тег semver-minor.
Когда LTS необходимо подготовить до апреля каждого года, Node.js будет перехватывать новую ветку из ветки master.Если это v6, то эта ветка будет называться v6.x-staging 。 Более поздние модификации, связанные с этим LTS/планированием входа в этот LTS, такие как исправления ошибок и т. д., по-прежнему отправляют PR в master, но необходимо добавить тег lts-watch-v6.x. После слияния с мастером эти изменения подхватываются лицом, ответственным за выпуск, и объединяются в v6.x-staging.
Когда в апреле наступит день, когда первая версия v6 будет готова к выпуску, человек, ответственный за выпуск, создаст ветку v6.x, выберет изменения из промежуточной версии v6.x и объединит их. С апреля по октябрь все изменения в версии 6, будь то незначительные изменения или патчи, по-прежнему сначала отправляются PR в мастер, а затем выбираются и объединяются в промежуточную версию v6.x, а затем вводятся в v6.x после выпуска версии. Таким образом, мастер всегда сохраняет последние изменения. Для других веток, связанных с версиями, коммиты, подходящие для релизной версии, выбираются из мастера, а миниатюры смешиваются. каждого выпуска v6. За исключением лица, ответственного за работу с веткой, другие разработчики не будут касаться ветки, связанной с этими версиями.
3.5 Semver
Что такое Семвер
идтиsemver官网
Ознакомьтесь с подробным введением в семвер https://semver.org/lang/zh-CN/
Sem+ver, Sem означает семантику, а ver означает версию. Semver в целом представляет собой способ именования версий, который должен отражать значение определенных изменений версии. Текущий Semver обычно относится к спецификации версии, разработанной организацией Semver.org. Основные требования следующие: Базовая форма номера версии — MAJOR.MINOR.PATCH, состоящая из частей 3. Значения добавления значения каждой части следующие:
- ОСНОВНЫЕ: изменения программного API
- НЕБОЛЬШОЙ: изменение или добавление функциональности, но сохранение обратной совместимости (API без изменений)
- ПАТЧ: Патчи, в основном исправления ошибок.
4. Как разработчики выбирают версию node.js
- Если вам нужно попробовать последнюю спецификацию ES, рекомендуется использоватьПоследняя версия
- Если он используется проектом, сохраняйте его стабильным.Рекомендуется использовать долгосрочную версию.
一般来说,我们安装官网推荐的两个版本:LTS版本和Current版本
следующим образом
4.1 --LTS стремление к стабильности
Для разработчиков приложений Node.js, которые стремятся к стабильности, только одна версия October является Active LTS, это обновление Active LTS, которое производится раз в 12 месяцев.основная версия, каждая обновленная версия имеет 18 месяцев + 12 месяцев жизни, продолжение в серединеминор и патчНе беспокойтесь слишком о проблемах совместимости.
Текущая рекомендация — завершить онлайн-обновление в течение 12 месяцев после активной LTS (поскольку следующая активная LTS будет выпущена через 12 месяцев). Если вы отстаете от графика, уменьшите срок до 18 месяцев или до окончания активного периода LTS. Если не успеваете, то как минимум обновление должно быть завершено до окончания жизни этой версии в течение 30 месяцев, иначе обновлений безопасности не будет.
Если вы обеспокоены тем, что при прямом обновлении возникает много проблем совместимости, вы можете заранее протестировать и выполнить обновление в автономном режиме, когда четная версия выходит в апреле каждого года, и сообщить о проблеме сообществу (конечно, если у вас есть нет времени, вам не нужно беспокоиться об этом шаге.), и продолжайте следить, и онлайн-версия будет обновлена в октябре. Таким образом, и онлайн, и офлайн обновляются раз в 12 месяцев.основная версия, но в разное время. Хотя существует больше проблем совместимости, которые необходимо решать в автономном режиме, в то же время вы также можете позволить сообществу позаботиться о ваших потребностях в совместимости посредством обратной связи.
4.2 Хотите попробовать новые функции - текущий
хотите попробовать новые функции, или不在生产环境
Используя экспериментальный проект, вы можете попробовать нечетное количество, выпущенное каждый октябрь.основная версия. Каждая нечетная версия будет поддерживаться только в течение 8 месяцев, и не будет никаких гарантий совместимости, таких как LTS, но разработчики Node.js будут использовать эту версию для подготовки к следующей LTS, поэтому у нее будет больше смелых попыток. как более частые обновления v8 (что означает больше реализаций новых функций ECMAScript и оптимизаций производительности).
Поэтому разработчики, которые все еще используют v4.x в сети, готовы перейти на v6.x. Если ваше онлайн-приложение по-прежнему использует версию, выпущенную до программы LTS, например v0.12.x, лучше всего обновиться до v4.x или выше, так как v0.12.x будет недоступна после декабря 2016 г. Если есть какие-либо обновления безопасности, более ранних версий не будет, в основном уязвимости OpenSSL не будут исправлены, и эти приложения будут подвержены различным рискам безопасности. Как только вы обновитесь до версии 4.x или выше, будущие обновления будут относительно простыми, просто не забудьте следить за обновлениями.минор или патчВсе, или если лень, то просто нужно обращать внимание на обновления безопасности.
5. Расскажите об установке или управлении node.js на разных платформах.
Сначала вы можете проверить эту статью на официальном сайте:
- (Китайский язык)Установите Nodejs через менеджер пакетов
- (Английский)Установите Nodejs через менеджер пакетов
В этой статье на официальном сайте不同平台安装或管理
метод node.js
6. Многоверсионная схема управления
Давайте сначала взглянем на него, опубликованный Фахаем из фронтенд-команды Taobao FED в 2015 году.Управляйте версиями узлов, выбирайте nvm или n?Если ваш браузер Google не может получить доступ, смените другой браузер.
6,1 н, NVM, NVMW, NVM-Windows
Наши обычные варианты управления большинством версий узлов следующие:
Для получения дополнительной информации вы можете нажать, чтобы просмотретьn написано великим богом TJ на githubили https://www.npmjs.com/package/n;
6.1.1 n
- n Не поддерживает Windows
- В оболочке нет дочерних элементов, нет настроек файла конфигурации, нет сложного API.
- Команда n существует как модуль узла
- n При переключении между разными версиями узла используйте общий каталог node/npm.
n基于node的npm模块安装
, пакет npm, который необходимо установить глобально (после того, как узел будет установлен на компьютере, затем全局安装npm
, вы можете установить n) с помощью npm. >> + Вы не можете использовать n без установленного узла;
6.1.2 nvm
Упомянутый здесь nvm — это не nvm-windows, а просто относится к nvm, подходящему для Mac/Linux. делать.
nvm доступен только для Mac/Linux.
nvm обычно не поддерживает системы Windows, но
可能支持
WLS
(Подсистема Linux под Windows). вы можете просмотреть官网nvm的重要提示
nvm — это внешний скрипт оболочки, независимый от node/npm и являющийся автономным пакетом.
nvm не зависит от среды узла, никакой узел не установлен, вы также можете использовать (установить) nvm
Глобальные модули nvm существуют в песочнице соответствующих версий, после переключения версий их нужно переустанавливать, а конфликтов между разными версиями нет.
Чтобы узнать больше о WLS, перейдите по следующим ссылкам:
wsl (подсистема Linux под windows)(Энциклопедия Байду);
Краткое введение в WSL (подсистема Linux в Windows) и установка;
6.1.3 nvmw
` nvmw不再维护 `
SORRY, nvmw is no longer maintained.
If someone wants to keep maintained, contact me by email or twitter.
Пожалуйста, используйте nvm-windows, nvmw здесь подробно не рассматривается.
- nvmw поддерживает только систему Windows
- предпосылкиПеред установкой nvmw необходимо установить:
- git
- python 2.7 + only if you need Node < 0.8
6.1.4 nvm-windows
- nvm-windows — это инструмент командной строки.
- nvm-windows — это не просто порт nvm, и они никак не связаны.
- nvm-windows часто называют nvm для краткости, но, пожалуйста, используйте nvm-windows как можно чаще.
- Когда nvm-windows переключает версии узла, модули npm не распределяются между разными версиями узла.
- Перед установкой nvm-windows нужно:
- Удалите любую существующую версию node.js, установленную на вашем компьютере.
- Удалите все существующие каталоги установки nodejs, которые могут остаться (например, «C:\Program Files\nodejs»).
- Удалите существующее место установки npm (например, "C:\Users\AppData\Roaming\npm"), чтобы правильно использовать место установки nvm.
- Требуется после установки nvm-windows
- должно быть
每个
Установленная версия глобальной утилиты переустановки узла Например, gulp/webpack, то есть все приложения или командные строки, которые ранее были установлены на основе узла, необходимо переустановить. Если вы используете только определенную версию узла, вы можете переустановить его в этой версии узла, но если вы переключаетесь на другую версию узла и хотите использовать приложение последней переключенной версии узла, вам необходимо переустановить его.
Ниже приведены некоторые выдержки с официального сайта для облегчения понимания:
-
请注意,您可能安装的任何全局npm模块都不会在您安装的node.js的不同版本之间共享。此外,在您使用的node版本中可能不支持某些npm模块,所以在工作时要注意您的环境。
-
在为Windows安装nvm-windows之前,您需要卸载电脑安装的node.js的任何现有版本。还要删除可能保留的任何现有nodejs安装目录(例如,“C:\Program Files\nodejs”)。nvm-windows生成的链接不会覆盖现有的(甚至是空的)安装目录。
-
您还应该删除现有的npm安装位置(例如。"C:\Users\AppData\Roaming\npm"),以便正确使用nvm安装位置。安装完成后,必须为每个已安装版本的node重新安装全局实用程序(例如gulp):
nvm use 4.4.0
npm install gulp-cli -g
nvm use 0.10.33
npm install gulp-cli -g
осторожность! ! ! Это предложение с официального сайта:
I've done some work to make this project available on all operating systems. The only reason it's been so slow to release is anticipation of an explosion of new installers (chocolatey, homebrew, rpm, .deb, .msi, etc). I've partnered up with BitRock to simplify creation of some of these, but the BitRock installers don't support all of these.
我做了一些工作使这个项目在所有操作系统上都可用。它发布如此缓慢的唯一原因是预期会有大量的新安装程序(chocolatey、自制程序、rpm、.deb、.msi等)出现。我与BitRock合作简化了其中一些的创建,但是BitRock安装程序并不支持所有这些。
Многоязыковая поддержка nvm-window не появится до 2.0.0.В то время это может быть кросс-платформенный менеджер версий, или он может не называться nvm-windows.Мы до сих пор не знаем его 2.0.0 имя. как это называется, когда
6.2 Введение во взаимосвязь между nvm и nvm-windows
о使用nvm还是n?
Для этой проблемы, во-первых, все здесь обычно называют nvm (поддерживающий Linux/mac) и nvm-windows (поддерживающий окно) nvm или NVM. Это потому, что оба имеют префикс nvm, когда они используют команды.Однако nvm-windows не является простым портом nvm, и они не имеют к ним никакого отношения.Это два разных проекта. Итак, попробуйте вызвать их стандартным способом. Вы можете проверить это на GitHub, ссылки приведены ниже:
Учебник, представленный в учебнике для новичковИспользуйте nvm для управления разными версиями node и npm., все команды nvm, представленные в руководстве, можно запускать в nvm-windows.
--------此处的nvm与nvm-windows的区别,待收集整理~------
--------更多区别,等待你的发现,邀请您参与编写------
6.3 Введение в разницу между n и nvm и nvm-windows (как выбрать управление версиями узла)
6.3.1 О поддерживаемых операционных системах
- Системы Windows: nvm-window, nvmw, nodist
- системы Mac/Linux: nvm или n
nvm обычно не поддерживает системы Windows, но可能支持
WLS
(Подсистема Linux под Windows)
6.3.2 О глобальном узле/npm
-
n
:Поскольку все пути к модулям, установленным npm, являются /usr/local/lib/node_modules, при использовании n для переключения между разными версиями узла глобальный каталог node/npm фактически будет общим, то есть когда n переключает версии. следовательно
不能很好的满足『按不同 node 版本使用不同全局 node 模块』
спрос. -
nvm/nvm-windows
:Между разными версиями глобальный узел/npm не используется совместно.
『按不同 node 版本使用不同全局 node 模块』
6.3.3 О зависимостях узлов
-
n
:n зависит от узла, перед установкой n необходимо сначала установить узел, глобальный npm
-
nvm/nvm-windows
:Не зависит от ноды, установка ноды зависит от nvm/nvm-windows, то есть перед установкой nvm или nvm-windows на компьютере не обязательно должна быть среда ноды (нет необходимости устанавливать ноду)
6.3.4 Свойства о себе
-
n
:n существует на основе узловых модулей, разработанных на основе узловых
-
nvm/nvm-windows
:nvm/nvm-windows — это независимый пакет, nvm-windows разработан вместе с go
6.3.5 Операции перед установкой
-
n
:n Нет необходимости удалять установленный узел
-
nvm/nvm-windows
:Перед установкой nvm/nvm-windows вам необходимо удалить все существующие версии узлов, удалить все существующие каталоги установки nodejs, которые могут остаться, и удалить существующие места установки npm.
6.3.6 Эксплуатация после установки
-
n
:После установки n, установленных глобальных модулей, в большинстве случаев вам не нужно переустанавливать глобальные приложения npm (например: glup, webpack), потому что n разделяет глобальные модули узла
-
nvm/nvm-windows
:После установки nvm/nvm-windows вам необходимо переустановить глобальные приложения npm (например, Glup, Webpack) для каждой версии узла, поскольку nvm/nvm-windows не использует общие модули узла.
6.4 Пример аналогии между nvm/nvm-windows и n
Для описания nvm/nvm-windows и n, например:
把node版本比作兄弟姐妹。所有已安装的全局npm的应用程序(如:glup,webpack)比作已经建好的房子。切换版本的工作就相当于指定某个人看自己的家
, Предположим, что ваш отец и ваш дядя разошлись, вы живете в одном доме со своими братьями и сестрами, а вы и ваши двоюродные братья живут в своих собственных домах.
При использовании n для управления узлом версия узла заключается в том, что вы и ваши братья и сестры живете в одном доме, вы и ваши братья и сестры живете в одном доме (делите один и тот же модуль узла). );
При управлении узлом с помощью nvm/nvm-windows версия узла — это вы и ваши двоюродные братья, которые не живут в одном доме. Твой дом — это твой дом, а дом твоего кузена — это дом твоего кузена. При ведении домашнего хозяйства должно быть так, что дом, за которым вы наблюдаете, и дом, за которым наблюдают ваши двоюродные братья, определенно не являются одним и тем же домом (не используйте один и тот же модуль узла).Может быть, вы наблюдаете за домом своих двоюродных братьев? и сестры! ! ! ага~ Твой двоюродный брат не дал тебе несколько миллионов, дай мне немного очков, и я тоже присмотрю за домом для тебя
6.5 Выдержка с официального сайта nvm-windows
1. Первый отрывок изНесколько абзацев с официального сайта nvm-windows:
------------------------Отрывок начала ----------------------- - ------------
node.js有几个版本管理器。像nvm和n这样的工具只能在Mac OSX和Linux上运行。Windows用户被冷落了?不。nvmw和nodist都是为Windows设计的。
首先,这个版本的nvm(指nvm-windows)不依赖于node。它是用Go编写的...
控制机制也大不相同。支持具有热切换功能的多个node安装的一般方法有两种。第一种方法是在每次切换版本时修改系统路径,或者通过使用.bat文件模拟节点可执行文件并相应地重定向来绕过它。在我看来,这总是有点过时,而且由于这个实现有一些怪癖。
第二个选项是使用符号链接。这个概念要求将符号链接放在系统路径中,然后将其目标更新到要使用的节点安装目录。这是一种直截了当的方法,似乎是人们推荐的……直到他们意识到Windows上的符号链接有多么痛苦。这就是为什么以前没有发生过。
为了创建/修改符号链接
(симлинк),您必须以管理员身份运行,并且必须绕过Windows UAC(那个烦人的提示符)。幸运的是,我已经在node-windows中的一些帮助脚本中解决了这个问题。因此,Windows的NVM
(имеется в виду nvm-windows)只维护一个符号链接,该符号链接只在安装期间放在系统路径中。切换到不同版本的节点就是切换符号链接目标。因此,这个实用程序不需要您使用x.x运行nvm
(nvm-windows)。每次打开控制台窗口。当您运行nvm时,使用x.x。节点的活动版本在所有打开的控制台窗口中自动更新。它在系统重新引导之间也会持续存在,所以您只需要在需要进行更改时使用nvm
(используя команду nvm с nvm-windows)。
Windows的NVM
(nvm-windows)附带了一个安装程序,这是我在Fenix Web服务器上工作的副产品。
总的来说,这个项目
(nvm-windows)汇集了一些想法、其他模块的一些久经沙场的部分以及对新版本node的支持。
Windows的NVM使用node项目提供的列表识别“最新”版本。版本1.1.1+使用这个列表。在此列表存在之前,我一直在收集发行版并将其作为独立的数据提要提供。这个列表在版本1.1.0和更早的版本中使用过,但是现在不推荐使用。
-----------------------Конец перевода----------------------- - ---
--
Понятия, используемые в приведенном выше переводе, следующие:
- Символическая ссылка (симлинк) Символическая ссылка — это косвенный указатель на файл
Вы можете узнать о символических ссылках (симлинках) и жестких ссылках, следуя ссылкам на учебники ниже.
Семь, nvm-windows устанавливает многоверсионные шаги узла
После 3-х дней написания ключевой момент наконец-то здесь.Прежде всего повторю краткое описание и меры предосторожности nvm-windows
7.1 nvm-windows
- nvm-windows — это инструмент командной строки.
- nvm-windows — это не просто порт nvm, и они никак не связаны.
- nvm-windows часто называют nvm для краткости, но, пожалуйста, используйте nvm-windows как можно чаще.
- Когда nvm-windows переключает версии узла, модули npm не распределяются между разными версиями узла.
- Перед установкой nvm-windows нужно:
- Удалите любую существующую версию node.js, установленную на вашем компьютере.
- Удалите все существующие каталоги установки nodejs, которые могут остаться (например, «C:\Program Files\nodejs»).
- Удалите существующее место установки npm (например, "C:\Users\AppData\Roaming\npm"), чтобы правильно использовать место установки nvm.
- Требуется после установки nvm-windows
- должно быть
每个
Установленная версия глобальной утилиты переустановки узла Например, gulp/webpack, то есть все приложения или командные строки, которые ранее были установлены на основе узла, необходимо переустановить. Если вы используете только определенную версию узла, вы можете переустановить его в этой версии узла, но если вы переключаетесь на другую версию узла и хотите использовать приложение последней переключенной версии узла, вам необходимо переустановить его.
7.2 Действия перед установкой
В следующем примере я использую
windows7
из
[Шаг 1], при условии, что вы установили узел ранее, а npm устанавливает модули глобально и используется для выполнения команд окна (операции, не связанные с проектом). (Если у вас не установлены узлы и глобальные модули или вам не нужны эти команды, пожалуйста ——перепрыгни)
Если модуль Global установки NPM используется только для операции команды окна, вместо работы, пропустите этот шаг. В проекте есть файл Package.json в проекте, вам нужно только установить все зависимости, которые необходимо установить проект после установки узла. Нет необходимости переустановить, пожалуйста ------перепрыгни)
Прежде всего, для того, чтобы ваши ранее установленные глобальные модули можно было использовать в командном окне (не требуется проектом), лучше всего сначала
截图记下你安装过哪些npm全局安装模块
, ниже мы используем cmd для работы, вы также можете использовать операцию git, но это не рекомендуется.Прежде чем приступить к работе, вы должны знать разницу между глобальной установкой nodejs и локальной установкой, а также как использовать npm для просмотра глобально установленных модулей и локально установленных модулей.Пожалуйста, прочитайте следующие ссылки на учебники, прежде чем вернуться к работе.
[Оригинал] Разница между глобальной установкой nodejs и локальной установкой;
1.1. Горячая клавиша [win+R], чтобы открыть окно поиска запуска, введитеcmd
, ——————(Следующий шаг)
1.2, нажмите Enter, появится окно команды cmd, введите следующую команду: ——————(Следующий шаг)
npm list -g --depth 0
Если --depth 0 не добавлен, будет отображаться более подробный список. Здесь нам не нужно показывать детали.
1.3 Нажмите Enter, чтобы просмотреть установленный [npm全局模块
], и сохраните скриншот, или скопируйте и сохраните (обязательно сохраните!!!) ——————(Следующий шаг)
1.4 Заходим в свой проект, находим папку [node_modules] (пакет модуля узла), копируем и сохраняем копию ——————(Следующий шаг)
Если ваш проект,package.json里的dependencies和devDependencies配置是规范的
, то вам не нужно копировать пакет зависимостей проекта [node_modules]. Вам просто нужно зайти в проект и использовать команду сразу после установки узлаnpm install
Просто скачайте зависимости [node_modules]+_+
больше озависимости и devDependencies,пожалуйста прочти:Правильное использование зависимостей и devDependencies
[Шаг 2] Удалите любую существующую версию node.js, установленную на компьютере, и удалите путь
У вас могут возникнуть вопросы:
Сначала удалите npm или узел?
npm is written in Node.js, so you need to install Node.js in order to use npm. You can install npm via the Node.js website, or by installing a Node Version Manager or NVM.---译:npm是node.js编写的,因此需要安装Node.js才能使用npm。您可以通过Node.js网站安装npm,或者安装Node版本管理器或NVM。
То есть npm должен быть в node.js! ! ! ;
Почему бы не удалить Node.js, поставляемый с узлом, а использовать программы и функции, поставляемые с вашим компьютером?
- Прежде всего, я не знаю, используете ли вы exe для установки узла или msi для установки узла, поэтому мы не можем знать подробности процесса установки программного обеспечения узла в окнах в соответствии с exe или msi; пожалуйста, поймите разницу между Установка msi и exe.
- И удаление Node.js, которое поставляется с узлом, будет иметь связанные остатки;
Зачем вам нужно просматривать путь установки узла или путь установки npm в cmd?
- Чтобы полностью удалить node.js, нам нужно удалить все предыдущие пути установки, удаление не может полностью удалить всю папку пути установки.
......
2.1 Введите следующую команду в cmd и нажмите Enter,查看并保存node.js安装路径
——————(Следующий шаг)
where node
или
where npm
2.2 Войдите в [Панель управления], выберите [Все панели управления], выберите [Программы и компоненты] и найдите установленные программы.Node.js
, правая кнопка мыши, удалить ——————(Следующий шаг)
2.3. Убедитесь, что узел был удален, и введите команду в cmdnode -v
, появится следующее приглашение: ——————(Следующий шаг)
(Простите меня за смену компьютера для работы с демонстрационными скриншотами, потому что интернет настолько плохой, что я не могу обновить веб-страницу, так что не говорите об этом, продолжайте писать)
“node”不被识别为内部或外部命令,可操作的程序或批处理文件。
不需要检查npm卸载没,因为npm写入到node.js去了,卸载node就相当于把npm也卸载了,不信你自己试试,输入`npm -v`。
На win7 показывает: ['узел' не является внутренней или внешней командой, а также не запускаемой программой или пакетным файлом]
Отображение на win8: ['узел' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.]
2.4.Перезагрузить компьютер (обновить реестр программного обеспечения компьютера, ля-ля-ля~, удалить библиотеку и убежать) ——————(Следующий шаг)
2.5, после перезагрузки (загрузиться, коснуться рыбки смешанной) ------(Следующий шаг)
2.6, удалите путь установки узла, удалите глобальный путь установки модуля ——————(Следующий шаг)
Если вы удаляете Node.js с помощью Node.js, вам нужно найти каталог установки узла, сохраненный в предыдущей записи, перейти в этот каталог, а затем удалить папку, например: здесь то, что я удалил, это: C:\Program Files\nodejs, если вы находитесь под【2.2 шага】Чтобы удалить node.js, вам не нужно удалять каталог установки узла, просто ——————(Следующий шаг)
2.7, удалить связанные с узлом переменные компьютерной среды (и пользовательские переменные) и ссылки
Нажмите [Компьютер]->[Свойства системы]->[Дополнительные параметры системы]->[Переменные среды]
-
Удалите путь узла в переменной пути (частичный регистр) в [Переменные пользователя] и путь к узлу переменной пути в [Системные переменные].
- Если путь вашего узла добавляется к переменной пути по ссылке, Пожалуйста, одновременно удалите ссылку на переменную узла и переменную ссылки на узел в переменной пути; Здесь, поскольку я только добавил путь к узлу в системной переменной, я удалил путь к узлу в системной переменной, Те, что отмечены красным, удалены мной.
Как узнать, какие переменные среды и файлы необходимо удалить? Найдите следующие пути, удалите папки и переменные среды (пользовательские переменные и системные переменные), соответствующие этим путям, и удалите, если они есть.
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\`{User}`\AppData\Roaming\npm (或者 %appdata%\npm)
C:\Users\`{User}`\AppData\Roaming\npm-cache (或 %appdata%\npm-cache)
C:\Users\`{User}`\.npmrc (没有“.”前缀的也可能需要检查)
C:\Users\`{User}`\AppData\Local\Temp\npm-*(以npm-开头的文件夹)
Если на диске C вашего компьютера не отображаются скрытые файлы с префиксом «.», пожалуйста,Чтобы показать скрытые файлы, не забудьте вернуться к значению по умолчанию после удаления соответствующего пути! !
Работа win7 выглядит следующим образом:
Для win8 вам нужно перейти к [Скрытые элементы] в правом верхнем углу окна, а затем нажать [Параметры] справа. . . . .
=======================================================
Здесь я удаляю
-
C:\Users\HDMI\AppData\Roaming
[npm] и [npm-cache] в разделе -
C:\Users\HDMI\AppData\Local\Temp
[npm-3328-b046e407], [npm-7492-60989c8f], [npm-8352-f82062a1] под
-------------------- Чтобы подвести итог предложению, удалите все ***, относящиеся к узлу/npm-------------- - ------------- Не забудьте вернуть для отображения скрытых файлов значение по умолчанию после удаления соответствующего пути! !
2.8. Поздравляем, вы успешно удалили node.js/npm и удалили связанные пути
----------------------------Закончив и написав почти неделю, я, наконец, освободился.--------------------------------------------
7.3 Шаги по установке nvm-windows
Перейдите на GitHub nvm-windows,Загрузите последнюю версию nvm-windows
Вы увидите, что есть два пути:
nvm-noinstall.zip
: Зеленая версия, требует настройки (если вы новичок, то все равно пройдете зеленую версию)nvm-setup.zip
: Установить пакет без настройки.
------------------------ Ниже выбираемnvm-setup.zip
Установить------------------------------------
После распаковки это exe,
Дважды щелкните, чтобы войти в установку
Перед установкой рекомендуется закрыть антивирус и выйти
1. Соглашение о согласии, следующий шаг [Далее]
2. Настройте место установки nvm, (不要有中文路径或空格
). После того, как вы выберете путь, он по умолчанию добавит вам суффикс \nvm (для идентификации)
3. Установите расположение папки символической ссылки узла. (不要有中文路径或空格
). Этот путь является каталогом, в котором nvm хранит вашу программу nodejs позже.После завершения установки каталог будет автоматически удален.
4. Если вы установили узел на свой компьютер до установки nvm, вы увидите следующий рисунок, спрашивающий вас, следует ли использовать nvm для управления существующей версией узла. Обязательно выберите «Да», это всплывающее окно может появиться несколько раз, нажмите «Да». (Если вы следовали приведенному выше [7.2 Действия перед установкой] для работы такой подсказки не будет, также рекомендуется следовать приведенным выше [7.2 Действия перед установкой] работать, иначе будут проблемы с последующим использованием ноды)
5. Проверьте и подтвердите путь, по которому нужно следовать.Если вы хотите просмотреть или изменить какие-либо настройки, нажмите «Назад», и после подтверждения вы можете нажать [установить], чтобы установить
6. Если появится следующий запрос безопасности, закройте антивирусное программное обеспечение и выйдите или выберите允许程序所有操作
(Рекомендуется закрыть и выйти из антивирусной программы)
7. Установка завершена
8. Проверьте, успешно ли установлен nvm-windows:
Горячая клавиша [win+R] вводcmd
Затем нажмите Enter, откройте командное окно cmd, введите
nvm -v
Если появляется номер версии, это означает, что она успешна, как показано ниже: Откройте командную строку с правами администратора. Введите nvm v, отобразится номер версии nvm, если есть, установка прошла успешно.
9. Настроить зеркало ————перепрыгни
Сначала поймите:
После понимания, под вашим путем установки nvm-windows,
(1) Сначала проверьте settings.txt, вы обнаружите, что в нем есть только [root] и [path]
(2) Дважды щелкните, чтобы запустить install.cmd, и это позволит вам输入”压缩文件解压或拷贝到的一个绝对路径”
Не беспокойтесь об этом, просто нажмите Enter, после успеха
(3) Найдите файл settings.txt, откройте и отредактируйте [node_mirror] и [npm_mirror] как желаемое зеркало и не перемещайте остальные. Здесь я иду по пути, где установлен nvm-windows
Я настроил зеркало Taobao следующим образом:
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
Настройки.txt после настройки выглядят следующим образом:
Примечание. Не перемещайте исходные параметры, просто добавьте зеркало, например
(4) Если вы не устанавливаете. Atxt под траектором установки NVM-Windows. Пожалуйста, нажмите на шаги выше, или в:
root
:nvm-windows安装路径
——Настройте каталог, в котором находится текущий файл nvm.exe, например: root: C:\dev\nvm, root: должен сопровождаться пробеломpath
:node 快捷方式所在的目录
—— Настройте каталог, в котором находится ярлык узла, например: путь: C:\dev\nodejs, путь: должен сопровождаться пробеломarch
:操作系统的位数
- Настроено как количество бит для текущей операционной системы (32/64)proxy
: прокси, настройка не требуется
10. Настройте переменные среды
кnvm-setup.zip
Установленный установочным пакетом nvm-windows по умолчанию добавит нам переменные окружения следующим образом:
【Системные переменные】
【Пользовательская переменная】
虽然用户变量少了NVM_SYMLINK,但是,系统自动会查找系统变量,一样会找到NVM_SYMLINK
Примечание: после root: и path: должен быть пробел, иначе он не будет установлен в папку nvm при установке узла
Если нет, требуется ручная настройка
Рекомендации по настройке вручную:
- Порядок двух переменных среды NVM_HOME и NVM_SYMLINK не должен изменяться, сначала создайте NVM_HOME, а затем создайте NVM_SYMLINK.
Как проверить правильность настройки среды?
Откройте CMD черезset NVM_HOME
а такжеset NVM_SYMLINK
Команда для проверки того, успешно ли настроена переменная среды
7.4 Шаги по установке узла с nvm-windows
команда для установки узла
Инструкции по установке:nvm install <version> [arch]
Это может быть версия node.js или «последняя» версия последней стабильной версии.
При желании укажите, следует ли устанавливать 32-разрядную или 64-разрядную версию (по умолчанию — системная арка).
Установите для [arch] значение «все», чтобы установить 32-разрядные и 64-разрядные версии.
Где [arch] — это файл settings.txt, загруженный и настроенный в каталоге установки nvm-windows.arch
Параметры nvm-windows для установки node.js:
- nvm install [номер версии] Установить фиксированную версию узла
- Например:
nvm install 6.10.2
Установите версию 6.10.2 Node.js
- Например:
- nvm install last устанавливает последнюю версию узла
- Например:
nvm install latest
Установите версию 6.10.2 Node.js
- Например:
nvm install latest
nvm-windows использует параметры node.js:
- nvm use [номер версии] В настоящее время используется версия узла
- Например:
nvm use 6.10.2
Использование версии 6.10.2 Node.js
- Например:
nvm use 6.10.2
nvm-windows устанавливает экземпляр node.js/npm
(1) Откройте cmd и введите командуnvm install latest
Установите последнюю версию12.5.0
nvm install latest
В то же время он автоматически поможет нам установить npm
(2) Входная командаnvm use 12.5.0
Введите, используйте node.js версии 12.5.0
nvm use 12.5.0
(3) Чтобы проверить, успешно ли установлен узел, введитеnode -v
Нажмите Enter, вы увидите номер версии узла, чтобы доказать, что установка прошла успешно.
node -v
И вы найдете это в нашей соответствующей конфигурации с settings.txtpath
(настроить ярлык узла), мы видим, что есть ярлык узла
Примечание. Если вы проверяете, успешно ли установлен узел, и возникают следующие проблемы, убедитесь, что у вас输入使用node命令
nvm use 12.5.0回车
.
['узел' не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл. 】
или10. Справочные ссылки:
-
Используйте nvm для управления разными версиями node и npm.(Учебник для новичков)
-
Краткое введение и установка WSL (подсистема Linux в Windows)
-
wsl (подсистема Linux под windows)(Энциклопедия Байду)
-
Создание, чтение и запись символических ссылок -- symlink, readlink;
-
UNIX (программирование - каталог файлов): 11 --- символическая ссылка (symlink, readlink)
-
[Оригинал] Разница между глобальной установкой nodejs и локальной установкой