Основы NPM с нефом и Node.js - PullRequest
       1

Основы NPM с нефом и Node.js

4 голосов
/ 16 сентября 2011

Я недавно установил node.js и мне сказали, что Express - это путь для маршрутизации и настройки веб-приложений.

Я установил последнюю версию узла, которая явно несовместима с последней версией.

Я посмотрел и нашел неф ... Как и RVM, неф позволяет переключать версии узла. Итак, я запустил nave.sh install 0.4.11... Это сработало успешно, и я смог бежать.

npm install express -g

Это, я думал, следует установить экспресс по всему миру. Итак, я бегу:

express testapp

, который создает

create : testapp
create : testapp/package.json
create : testapp/app.js
create : testapp/public/stylesheets
create : testapp/public/stylesheets/style.css
create : testapp/public/images
create : testapp/public/javascripts
create : testapp/views
create : testapp/views/layout.jade
create : testapp/views/index.jade

Тогда я

cd testapp/
node app.js

Я получаю

Ошибка: не удается найти модуль «экспресс»

Это обычное поведение?

Так как express находится в packages.json , если я запускаю npm install -d, он создаст в моем приложении каталог node_modules, а не просто символическую ссылку на node_modules в моем пути к узлу.

Ответы [ 2 ]

4 голосов
/ 16 сентября 2011

Одним словом, да, это обычное поведение.

Когда вы устанавливаете пакеты, используя NPM с параметром -g, он устанавливает его глобально, что делает такие приятные вещи, как размещение исполняемых файлов на вашем пути (т.е.используемый вами экспресс-скрипт)

Однако он НЕ помещает эти пакеты в любое место, где их может найти узел.

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

cd "your express app"
npm install express

, который устанавливается локально (в папку node_modules в корне директории вашего приложения).

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

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

Краткое описание NPM и глобальных и локальных см. в этом сообщении в блоге.

1 голос
/ 18 сентября 2012

Если вы работаете в Windows, добавьте местоположение к вашему пути.

export NODE_PATH="C:\Users\IMarek\AppData\Roaming\npm\node_modules"

Измените: IMarek на ваше имя пользователя.

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