Node.js разработка, windows или linux?
Меня интересует веб-разработка на платформе Node.js. Моей операционной системой является Windows 7. Каким будет предпочтительный способ настройки среды разработки. Запустить его непосредственно на хосте или в виртуальной машине на базе Linux? Каковы плюсы и минусы между этими двумя методами?
Если я перейду к VM, могу ли я запустить текстовый редактор и веб-браузер в Windows (по соображениям производительности)?
Ответы
Ответ 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 для тестирования перед выходом на производство.