2012-04-06 3 views
39

Я пытаюсь установить node.js. Я последовал за this tutorial, и я застрял посередине.Node.js Cygwin не поддерживается

Когда я пишу ./configure в своем терминале cygwin, он говорит: «cygwin не поддерживается». Пожалуйста, помогите мне Заранее спасибо.

+2

Вместо того, чтобы продолжать здесь было бы идеально, [к сожалению, это Q эффективно переспросил 1,5 года спустя stackoverflow.com/questions/17297422/trouble-with-starting-node-js-from-a-cygwin -console] (http://stackoverflow.com/questions/17297422/trouble-with-starting-node-js-from-a-cygwin-console#comment-36204702); как поясняет этот комментарий, тр - это какой-то полезный материал, но для нового материала, любезно положите его здесь на первое задание. –

ответ

37

Узел в моем опыте прекрасно работает в Cygwin, то, что узел обычно имеет EINVAL ошибки, кажется, MINTTY который является эмуляция терминала «скин», которая по умолчанию является cygwin. Я все еще не уверен, почему эти ошибки EINVAL происходят на 100%, но следующие шаги и трюки, которые я использую для получения работы узла.

В моем /cygwin/home/{username}/.bashrc добавить узел в путь, чтобы Cygwin можно найти его

export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/" 

Если запустить 32 разрядную версию узла:

export PATH=$PATH:"/cygdrive/c/Program Files (x86)/nodejs/" 

Тогда, чтобы НПЕ бежать без окон на вопросы Линукса я запускаю Cygwin в режиме администратора, то выполните команду:

dos2unix '/cygdrive/c/Program Files/nodejs/npm' 

на данный момент ходового файла s и большинство пакетов npm будут работать в MINTTY просто отлично, хотя каждый раз и некоторое время вы столкнетесь с проблемами EINVAL с определенными пакетами npm в качестве кармы. Кроме того, вы не сможете запускать интерпретатор непосредственно в MINTTY, в любое время я хочу, чтобы сделать эти вещи, я бегу:

cygstart /bin/bash 

Это откроет собственное окно Cygwin bash.exe, здесь вы запустите интерпретатор или любая тревожная команда пакета, которая приводит к EINVAL. Это немного отстой, вы должны это делать, но я редко использую этот день и день, и я слишком люблю MINTTY, чтобы не использовать его.

Кроме того, обратите внимание, что вы можете запустить любой код узла одну строку в MINTTY, просто выдав что-то вроде:

node -e "console.log('hello node')" 
+1

Я должен был заметить, что dos2unix нужно будет установить из процесса установки cygwin или в cygwin через кв-Лебедь. И Node необходимо будет установить с помощью установщика Windows. – troy

+0

Не npm файл cmd? Зачем использовать dos2unix в файле cmd? – CMCDragonkai

+3

Это так. Но есть и сценарий оболочки «npm» без расширения, которое выполняется Cygwin, когда вы используете команду «npm». На самом деле у меня нет подсказки, почему этот сценарий оболочки содержит окончание строк Windows. –

-1

Захватите и запустите установщик Windows.
В приглашении Cygwin node
Посмотрите, работает ли оно.

+0

Я загрузил его, извлек его из терминала cygwin, но та же проблема возникает. Инсталлятор устанавливает файл в другом месте, поэтому я сделал все с терминала cygwin, а в cygwin файл nodejs устанавливается в home/Dell/nodejs/folder, где я написать команду ./configure, но все равно тот же результат – Mj1992

+0

человек, если вы действительно хотите придерживаться cygwin .... не запускать установщик из cygwin. Сделайте это из Windows. Когда вы запускаете cygwin, убедитесь, что узел находится на вашем пути (C: \ Program Files \ nodejs). – mihai

+1

Это работало отлично для меня на нескольких машинах. Просто установите Cygwin, затем установите узел, используя собственный установщик Windows. Когда вы вводите «какой узел» или «какой npm», он разрешает место, где был установлен узел (возможно, это работает, потому что узел видит Cygwin и добавляет его пути к $ PATH Cygwin). – thure

5

Используйте Console2, он позволяет запускать вкладки создания оболочек CLI. Кажется, запущенный cygwin внутри console2 позволяет мне использовать узел REPL просто отлично. Я понятия не имею, почему: P

Следуйте этому руководству, чтобы добавить Cygwin в Console2:
http://blog.msbbc.co.uk/2009/11/configuring-console-2-and-bash-with.html

+0

Я только заметил [Google Search (Node-js cygwin)] (https://www.google.com/search?q=Node-js + cygwin) find 5 http://nlighteneddevelopment.com/content/nodejs-cygwin также имеет это (используя Console2) в качестве своего исправления –

-1

из окон запустите Cygwin.bat (вместо Cygwin Terminal), то в этом узле запуска: см и ответ на this ответ на this фактически тот же вопрос спросил 1,5 года спустя.

+1

Эта ссылка может ответить на вопрос, но основы кода должны быть включены здесь, и ссылка должна быть для справки. – worldofjr

8

В качестве более простого производного ответа Трои для тех, кто просто ищет для установки пакетов НПХ:

  1. Установки Node.js с пакетом установщика Windows.
  2. Добавьте его в PATH с помощью export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/" (очевидно, заменив путь к каталогу установки Node.js, где вы его установили).
  3. В версии Windows есть текущая ошибка, которую можно исправить, запустив mkdir -p ~/AppData/Roaming/npm. Это ошибка для всех Windows, а не только для Cygwin. В какой-то момент в будущем вам больше не придется этого делать, но команда не должна иметь никаких отрицательных побочных эффектов.
  4. Проверьте его. Например, npm install pretty-diff -g.
  5. Чтобы иметь возможность запускать вновь установленное программное обеспечение, вам нужно будет добавить места установки в ваш PATH. Вы можете найти их с npm bin -g и npm bin (флаг -g является «глобальным» местом установки).

Не очень-то особенное, что вам нужно сделать, чтобы запустить его в Cygwin (хотя я не могу сказать, все ли работает).

+0

+1 для упрощения вещей, касающихся только NPM (все, что мне нужно прямо сейчас). В качестве обновления последний установщик устанавливает PATH как в область Node exe, так и в область глобального модуля, поэтому все, что вам нужно сделать, это перезапустить ваши оболочки, если у вас есть какие-либо открытые. Шаги 2, 3 и 5 теперь можно пропустить.Локальные установки npm (без '-g'), создаваемые оболочкой Cygwin, записываются в' node_modules' в текущем каталоге, поэтому пользователь должен уметь самостоятельно определять их. Мне не нужно ПОВТОРИТЬ их для 'require()' для работы. – juanitogan

0

С предложением Бьерна (using Console2) и псевдоним Soyuka (в steps here), мой Node.js v0.10.13 и НПМ v1.3.2 теперь работают под Babun v1.02, распределение Cygwin. enter image description here

+0

Очень приятно слышать! В самом деле, я скоро дам эту попытку и действительно надеюсь, что это сработает. Но почему вы используете версию Node.js, которая, по-видимому, на 1,3 года устарела? «вы ответили» 15.12.2008 в 17:07 «поэтому, когда Node« 2014.10.20 Version 0.10.33 (Stable) »был последним, но вы используете« node.js v0.10.13 », поэтому из (датированного) 2013.07.09 Версия 0.10.13 (Стабильный) », цитируя официальный http://nodejs.org/changelog.html. -А как хорошо он работает, когда для всех программ (по-видимому, просто Babun, Node и npm, правильно?), вы используете текущие стабильные версии? - было бы обычной и вообще необходимой вещью. –

0

Для окон, Просто запустите bash.exe в ЦМД, так что вы могли бы иметь Баш работу вокруг с CMD консоль непосредственно, которая может поддерживать все УЗЕЛ РАБОЧЕЕ ОТЛИЧНО.

C:\Users\郷>bash 

郷@CHIGIX ~ 
$ node 
> 
+0

OP уже использует терминал cygwin. Как запускается bash из cmd.exe на вопрос? –

+0

Эмуляция из cygwin просто поместил много файлов программы exe в каталог установки cygwin, которые имеют одно и то же имя для общих файлов команд/исполняемых файлов linux. Таким образом, вы можете иметь командную среду bash из cmd.exe, конечно, которая обычно находится в 'C: \ cygwin64 \ bin \ bash.exe'. –

+0

У меня возникло странное поведение при использовании терминала cygwin, например нет производительности на выходе npm или индикатора выполнения, но это решение помогло мне. Не забудьте добавить cygwin64/bin в PATH, хотя в противном случае это решение не будет полезно –

Смежные вопросы