Подтвердить что ты не робот

Node.js разработка, windows или linux?

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

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

4b9b3361

Ответ 1

У нас есть система, через которую мы просто используем конфигурационный файл, который обрабатывает все наши проблемы, такие как различия в пути ("c:\blarg" vs "~user/blarg") и, в качестве бонуса, позволяет нам контролировать различия между средой отладки и производственной средой.

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

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

/**
 * All of these are mandatory except for log_level (which defaults to "info", 1) 
 * and log_echo_to_console (which defaults to false)
 */
exports.config = {
    log_level: 0,
    log_file: "/path/to/send.log",
    request_log_file: "/path/to/send_requests.log",
    log_echo_to_console: true,
    port_number: 8088,
    no_notification_emails: true,
    image_url_base: "http://s3.amazonaws.com/",      // MAKE SURE THIS ENDS IN "/"
    tmp_file_folder:"/tmp/",
    s3_info: {
        key: 'xxxxxx',
        secret: 'yyyyy',
        file_bucket: 'sendtransfer/',
    },
    backend_info: {
        db_info: {
            server: "localhost",
            user: "db_user",
            password: "secret",
            database: "SendRemote",
            pooled_connections: 125,
            idle_timeout_millis: 30000
        },
        memcache_info: {
            host: "127.0.0.1",
            port: "31111",
            pooled_connections: 200,
            timeout: 20000
        }
    },

    debug_server: true
};

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

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

var local = require('local.config.js');
fs.writeFile(local.config.log_file);
// etc

Объявите мультикультурализм!!!

Ответ 2

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

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

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

  • не может эффективно использовать докер. Последняя версия инструментария докеров решает это, насколько я знаю. YMMV.
  • Для большинства модулей node требуется node_gyp, что на поверхности не кажется проблематичным (поскольку gyp предполагается быть кроссплатформенным компилятором), за исключением случаев, когда вы вникаете в то, что нужно, чтобы заставить это работать над окнами: ничего, кроме установка визуальной студии будет работать. Это отстой для меня по нескольким причинам:
  • Я обычно на Linux, поэтому я никогда не хочу использовать визуальную студию.
  • Это самая смешная идея, что для компиляции чего-то на окнах требуется как минимум 3 ГБ установка IDE... не libs, а полностью монолитная часть программного обеспечения GUI, которую я никогда не запустил.
  • эквивалент 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:

  • установить шоколадный
  • choco install cmder nodejs python2 choco install python2
  • установите http://scoop.sh, затем используйте его для установки pshazz.
  • удалить все версии node вручную, установленные глобально.
  • установить nvm-windows установить nodist.
  • установить visual-studio 2012 express, а затем никогда не запускать его, если вы сокровище циклов процессора. это может быть чрезмерным, поскольку Microsoft выпустила эквивалент для необходимых для сборки.
  • установить windows 7/10 64bit sdk

Проблемы с 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.

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

$ sudo apt-get install git-core git-flow build-essentials python-dev python-  pip
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
$ npm config set prefix ~/.local/share/npm
$ nvm install stable
$ nvm alias default stable

ссылки:

Ответ 3

Я тоже на Windows 7 и использую Virtualbox с гостем Linux (debian), я бы рекомендовал это, потому что я для себя быстрее делаю некоторые вещи в командной строке, а затем щелкаю arround в Windows.

Еще одна приятная особенность заключается в том, что если вы поместите свою виртуальную машину на USB-накопитель, вы можете взять ее с собой и использовать ее везде, где установлен Virtualbox Host, поэтому вы можете взять с собой всю среду разработки.

Не нужно вообще использовать ваш любимый текстовый редактор или браузер в Windows, просто установите samba и смонтируйте домашний каталог в Windows. То же самое касается вашего браузера, поскольку виртуальная машина - это всего лишь еще одна машина в вашей локальной сети, вместо того, чтобы указывать ваш браузер на localhost, указывая ее на виртуальные машины Ip, и вы в порядке.

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

Ответ 4

мои два цента могут быть даже меньше:

Я предлагаю вам третий вариант: удвоить установку windows/ubuntu setup (желательно ubuntu dist, что наиболее удобно для gui) и исследовать этот вариант, а также таким образом, вы будете более знакомы с Linux/Unix и даже iOS, которые даже заставят вас лучше понять Windows и лучшего программиста. Иногда виртуальная коробка работает слишком медленно, а linux очень эффективна с ресурсами.

Если у вас есть возможность установить виртуальную машину, вы также можете перейти к установке дистрибутива Linux и познакомиться с этим язык/система ОС, на которой много веб-страниц структурировано на

Ответ 5

Мне очень нравится кодирование node.js в Windows с помощью git bash: http://blog.nodester.com/post/19902515151/tips-for-windows-users

Кажется, что быстрее и проще запускать VirtualBox. Учитывая, что я все еще использую Virtual Box для тестирования перед выходом на производство.