Node js windows или linux

Разработка Node.js, Windows или Linux?

Я заинтересован в веб-разработке на платформе Node.js. Моя хост-система — Windows 7. Какой предпочтительный способ настройки среды разработки? Запустить его прямо на хосте или в виртуальной машине на основе Linux? Каковы плюсы и минусы между этими двумя методами?

Если я использую виртуальную машину, могу ли я по-прежнему запускать текстовый редактор и веб-браузер в Windows (по соображениям производительности)?

5 ответов

У нас есть система, с помощью которой мы просто используем конфигурационный файл, который обрабатывает все наши проблемы, такие как различия в путях ( «c:\blarg» против «

user/blarg» ) и, в качестве бонуса, позволяет нам контролировать различия между отладочной и производственной средами.

Node.js является кроссплатформенным, поэтому у нас есть разработчики, работающие на всех типах компьютеров, и это не проблема.

Это пример файла конфигурации, который я использую в проекте хранения файлов:

Для машин с Windows просто измените пути. Все хорошо!

Затем в коде вы можете просто набрать:

Эх из опыта, использовать Linux Докер.

Редактировать Используйте Docker. Запекать ваши зависимости, монтировать ваш проект во время выполнения, привязывать только к определенной версии узла LTS. Я бы взял образ докера 2 ГБ поверх неиспользуемого проекта, что привело бы к потерянным дням, которые были вынуждены перейти на новые пакеты. — 2018/04/10

Но от кого-то, чьи последние 8 лет работали в среде Linux и потратили последние 6 месяцев на разработку программного обеспечения с использованием nodejs в среде Windows DotNet, вот мои открытия, шокирующие или нет.

Проблемы на окнах:

  • не может эффективно использовать докер Последняя версия инструментария докера решает эту проблему, насколько я понимаю. YMMV.
  • большинству узловых модулей требуется node_gyp, что на первый взгляд не кажется проблематичным (поскольку предполагается, что gyp является кроссплатформенным компилятором), за исключением случаев, когда вы углубляетесь в то, что нужно для работы с окнами: ничего кроме установки Visual Studio не будет работать, Это отстой для меня по нескольким причинам:
  • Я обычно на Linux, поэтому я никогда не хочу использовать Visual Studio.
  • Совершенно самая нелепая идея, что для компиляции чего-либо в Windows требуется как минимум 3 ГБ установки IDE. не библиотеки, а полностью монолитного программного обеспечения с графическим интерфейсом, которое я никогда не запустил.

Windows эквивалент Debian build-essentials на самом деле представляет собой разрозненную обширную плохо названную коллекцию инсталляторов только с графическим интерфейсом, разбросанных по всему интернету, требующих особой последовательности установки Это по сравнению с sudo apt-get install build-essentials слишком много времени и таит в себе скрытые ошибки.

разработка на Windows позволит вам использовать привычные имена путей для разных случаев, если только ваша команда не придерживается строгой политики, которая соблюдается / применяется, это будет скользким шагом к проблемам в дальнейшем.

в то время как Windows поддерживает более 256 символов в путях, важные инструменты не работают. выйти на сцену слева: римраф и робокопия. тьфу.

Терминал Windows отстой. так же, как и оболочка по умолчанию: cmd.exe. Powershell слишком многословен в своем синтаксисе и не на мой вкус. Установка Cmder несколько облегчает это, однако единственный способ для Cmder взаимодействовать с cmd.exe — это в основном копировать нажатия клавиш на скрытый терминал Windows, на котором запущен cmd.exe. (Lolwut). Cmder намного лучше работает с оболочками, которые являются более модульными (zsh, bash и т. Д.). , Обновление: теперь я использую powershell с pshazz и scoop, который на самом деле приятен в использовании.

Еще улучшив ситуацию с оболочкой и терминалом, nodejs для окон будет по-прежнему предполагать, что ваши переменные среды имеют значение%OF% %% %WINDOWS% %VARIETY%. а не $UNIX $STYLE. Так что в основном вы будете использовать bower и npm в основном из cmd.exe. больше тьфу. Кажется, у меня больше нет этой проблемы, так как я включил смесь cross-env и командир или ярги.

Вам также нужно установить Python для Windows, не проблема, потому что Choco существует и вернет вас туда. Обновление: взгляните на boxstarter, он поможет автоматизировать настройку вашей новой машины с помощью рецептов (или вы можете перейти к использованию ansible или salt).

Опытные python, разработчики ruby ​​скажут вам, что старым проектам понадобится версия их движка, когда вам нужно будет вернуться к ним (обновление до более новых версий в большинстве случаев нецелесообразно или практично, читайте: кроличьи норы), так что вы хочу что-то вроде rvm и virtualenv.

nvm (который работает только на Unix-системах Linux и Macosx), потому что это набор сценариев bash. Я рекомендую использовать ZSH в качестве оболочки вместе с Zgen и Tarrasch/zsh-autoenv плагин.

  • nodeenv, что более вероятно. программа на python, которая интегрируется с virtualenv. Некоторым людям это нравится. У меня нет проблем с этим, но наша команда использует nvm.
  • Тем не менее, вам лучше с nvm-windows, потому что «причины». поцарапайте это, используйте nodist на окнах. bar — лучший выбор, вам не нужно беспокоиться о каком-то autoenv, так как nodist по замыслу обрабатывает это.
  • Читайте также:  Использование клавиатуры windows для mac

    Установка на Windows:

    1. установить шоколадный
    2. choco install cmder nodejs python2 choco install python2
    3. устанавливать http://scoop.sh , а затем используйте его для установки pshazz.
    4. удалить любые версии узлов, установленных вручную.
    5. установить nvm-windows установить нодист.
    6. Установите Visual-Studio 2012 Express, затем никогда не запускайте его, если вы цените свои циклы процессора. это может быть излишним, так как Microsoft выпустила эквивалент основы сборки.
    7. установить Windows 7/10 64bit SDK

    Проблемы в Linux:

    tldr; использовать нвм. по другим причинам, кроме указанных ниже.

      вам придется установить глобальный путь npm node_modules для пользовательского каталога (я начал использовать

    /.local/share/npm ). Приятно, что это то, что я нашел, что установка windows nodejs была права (вероятно, не намеренно). Не проблема при использовании nvm.

  • В Ubuntu уже есть бинарный файл node , так #!/usr/bin/env node по умолчанию не будет запускать nodejs. К счастью, в системах Debian есть удобный инструмент управления env бинарный испускает: update-alternatives , игнорируйте предложения по использованию символических ссылок здесь, что только позже вызовет проблемы тонким способом. также не проблема при использовании nvm.
  • Node.js разработка, windows или linux?

    Меня интересует веб-разработка на платформе Node.js. Моей операционной системой является Windows 7. Каким будет предпочтительный способ настройки среды разработки. Запустить его непосредственно на хосте или в виртуальной машине на базе Linux? Каковы плюсы и минусы между этими двумя методами?

    Если я перейду к VM, могу ли я запустить текстовый редактор и веб-браузер в Windows (по соображениям производительности)?

    У нас есть система, через которую мы просто используем конфигурационный файл, который обрабатывает все наши проблемы, такие как различия в пути ( «c:\blarg» vs «

    user/blarg» ) и, в качестве бонуса, позволяет нам контролировать различия между средой отладки и производственной средой.

    Node.js — это кросс-платформа, поэтому у нас есть разработчики, работающие на всех компьютерах, и это не проблема.

    Это пример конфигурационного файла, который я использую в проекте хранения файлов:

    Для машин Windows просто измените пути. Все хорошо!

    Затем в коде вы можете просто ввести:

    Из опыта, используйте Linux.

    Но от кого-то, кто провел последние 8 лет, развиваясь в среде на основе Linux, и проведя последние 6 месяцев, разрабатывая программное обеспечение с использованием nodejs в среде Windows dot net, вот мои открытия, шокирующие или другие.

    Читайте также:  Windows multipoint server 2010 download

    Проблемы с окнами:

    эквивалент windows debian build-essentials на самом деле представляет собой разрозненную разросшуюся инаучную коллекцию только инсталляторов gui, разбросанных по всему Интернету, для которых требуется определенная последовательность установки. Это, по сравнению с sudo apt-get install build-essentials , является чрезмерно трудоемким и чреватым скрытыми ошибками.

    разработка на окнах позволит вам иметь плохую привычку к смешанным именам пути к файлу, если ваша команда не имеет строгой политики, которая будет соблюдаться/соблюдается. Это будет скользкий наклон к проблемам позже.

    в то время как окна поддерживают более 256 символов в дорожках, но важная инструментальная обработка не работает. введите этап слева: rimraf и robocopy. тьфу.

    Терминал windows сосет. так же имеет оболочку по умолчанию: cmd.exe.
    Powershell слишком многословна в этом синтаксисе, а не на моем вкусе. Установка Cmder несколько облегчает это, однако единственный способ, с которым Cmder взаимодействует с cmd.exe, состоит в том, чтобы в основном копировать нажатия клавиш на скрытый терминал Windows, работающий с cmd. Exe. (Lolwut). Cmder работает намного лучше с оболочками, чем более модульные (zsh, bash и т.д.). . update: теперь я использую powershell с pshazz и scoop, что на самом деле приятно использовать.

    По-прежнему улучшив ситуацию с оболочкой и терминалом, nodejs для
    окна будут по-прежнему предполагать, что ваши переменные окружения составляют% OF%% THE%
    % WINDOWS%% VARIETY%. не $UNIX $STYLE. Таким образом, вы будете в основном
    используя bower и npm в основном из cmd.exe. more ugh. У меня нет такой проблемы, поскольку я включил смесь cross-env и commander или yargs.

    Вам также понадобится установить python для Windows, а не проблему, потому что choco существует и у вас есть. обновление: взгляните на boxstarter, поможет автоматизировать вашу новую настройку машины с помощью рецептов (или вы действительно можете закончить использование использования или соли).

    опытный python, разработчики ruby ​​расскажут вам, что для старых проектов потребуется версия их силоса двигателя, когда вам нужно их повторно просмотреть (обновление до более новых версий в основном нецелесообразно или практично, читайте: отверстия кролика), поэтому вам нужно что-то вроде rvm и virtualenv.

    nvm (который работает только в системах unix linux и macosx), потому что это
    набор скриптов bash. Я рекомендую использовать ZSH в качестве оболочки вместе с Zgen и плагином Tarrasch/zsh-autoenv .

    nodeenv, что более вероятно. программа python, которая интегрируется с virtualenv. Некоторым это нравится. У меня нет проблем с этим, но наша команда использует nvm.
    Однако вам лучше работать с nvm-windows, потому что «причины». царапины, используйте nodist на окнах. bar гораздо лучший выбор, вам не нужно будет беспокоиться о каком-то autoenv, так как nodist по дизайну обрабатывает это.

    Установка в Windows:

    Проблемы с Linux:

    TL;DR; используйте nvm. по другим причинам, кроме ниже.

      вам нужно установить глобальный путь npm node_modules к каталогу, принадлежащему пользователю (я начал использовать

    /.local/share/npm ). Приятно, что это то, что я обнаружил, что установка windows node была правильной (возможно, не преднамеренно). Не проблема при использовании nvm.
    Ubuntu уже имеет двоичный код с именем node , поэтому #!/usr/bin/env node по умолчанию не будет запускать nodejs. к счастью, системы debian имеют аккуратный инструмент управления для управления тем, что генерирует двоичный файл env : update-alternatives . игнорировать предложения по использованию символических ссылок здесь, что будет приводить к возникновению проблем позже тонким образом. также не проблема при использовании nvm.

    Лучший путь как переустановить Node.Js (Mac/Linux/Windows)

    Один из простейших путей как установить Node.Js это пойти на официальный сайт, скачать установочный файл и установить его. Позже разработчики столкнулись с ситуацией, когда им нужно сменить версию Node.js на другую или обновить текущую версию.
    Это все еще возможно — установить другую версию с официального сайта, но как много нод уже установлено в системе?

    Читайте также:  Дельфин браузер для windows

    Может быть это хорошее время для удаления их всех и настроить возможность системе переключаться между нодами за секунды, всегда зная количество установленных версий и иметь возможность удалить любые из них одной простой командой.

    Обо всем по порядку, мы должны удалить старые версии ноды и все связанное с этим. Вы счастливчик, если вы установили прошлые версии с помощью Homebrew. Метод Homebrew это один из простейших вариантов для установки и удаления ноды на маке.

    Напишите эту команду в терминале. Brew удалит все установленные версии Node.Js

    После этого, лучше всего, запустить brew cleanup, это удалит все неиспользуемые зависимости и папки.

    Если ваша Node.js была установлена по другому, это не проблема. Вы можете удалить вручную. Есть куча папок, они могут быть удалены одна за одной через файндер или терминал.

    Список папок, где находятся Node.js и npm

    • node и/или node_modules в папке /usr/local/lib
    • node и/или node_modules в папке /usr/local/include
    • node, node-debug, и node-gyp в /usr/local/bin
    • .npmrc в вашей домашней директории ( Это настройки npm, не удаляйте этот файл, если хотите далее переустановить Node.js )
    • .npm в вашей домашней директории
    • .node-gyp в вашей домашней директории
    • .node_repl_history в вашей домашней директории
    • node* в /usr/local/share/man/man1/
    • npm* в /usr/local/share/man/man1/
    • node.d в /usr/local/lib/dtrace/
    • node в /opt/local/bin/
    • node в /opt/local/include /
    • node_modules в /opt/local/lib/
    • node в /usr/local/share/doc/
    • node.stp в /usr/local/share/systemtap/tapset/

    В случае, если вы не хотите вручную искать и удалять все эти папки и файлы, вы можете ввести одну простую команду в терминал:

    Эта команда не трогает вашу домашнюю директорию, так что в дальнейшем вы можете сами решить, что делать с сохранившимися файлами.

    Сейчас мы можем удалить все глобальные пакеты, установленные с npm

    После всех этих команд, Node.js и npm будут полностью удалены с вашего компьютера.

    После очистки, мы можем продолжить с установкой новой версии Node.js. Но мы сделаем это не прямым путем. Потому что если мы сделаем это по обычному, мы все еще будем иметь ту же проблему с кучей версий в будущем.

    Для решения этой проблемы, мы должны установить дополнительную маленький скрипт: NVM

    У данного скрипта есть единственная зависимость — установленная Command Line Tools. Если у вас все еще это не установлено, вы должны запустит команду в терминале:

    Итак, мы готовы установить NVM. Простейший путь это сделать — .sh скрипт.

    Скачать и установить данный скрипт мы можем с помощью следующей команды:

    0.37.2 — последняя версия на день написания статьи. Версия может быть проверена на странице NVM в GitHub

    Конечно, это может быть установлено вручную. Вы нужно склонировать репозиторий и добавить необходимы файлы в PATH. Детальная инструкция описана в NVM ReadMe. Это будет полезно если вам нужно использовать NVM в CI пайплайн. Я бы рекомендовал добавить NVM в Docker image, который использует ваш пайплайн.

    Не забудьте перезапустить окно терминала для обновления переменных окружения

    Мы почти закончили. Сейчас мы легко можем установить любую версию Node.js. Для примера, эта команда установит самую свежую версию:

    Если вы хотите установит LTS версию, но с последней версией npm, сделайте следующее:

    Используя флаги, вроде —lts вы можете использовать любую версию.

    Для того, что бы увидеть список установленных версий, вам нужно запустить команду:

    После установки, вам нужно выбрать дефолтную версию для вашей системы:

    Оцените статью