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

Экспресс-модуль не найден при установке с помощью NPM

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

$ node app.js

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Cannot find module 'express'
    at Function._resolveFilename (module.js:320:11)

Когда я печатаю выражение 'express -version', я получаю оператор возврата 2.3.3. Я использовал npm для установки express. Мне пришлось вручную сделать npm, используя следующие инструкции:

git clone http://github.com/isaacs/npm.git
cd npm
sudo make install

Ошибка Error: Cannot find module 'express'.

Нужно ли мне что-то делать после установки npm и выражения для того, чтобы явным образом видеть модули, созданные npm?

My node - версия: 0.4.6 Мой экспресс - это версия: 2.3.3 Моя версия npm - версия: 1.0.6

Экспресс установлен глобально. Я использовал флаг -g для его установки.

Изменить: Когда я пытаюсь выполнить node -e require.paths, я получаю:

['/home/user/.node_modules', '/home/user/.node_libraries', '/usr/local/lib/ node']

Итак, node не обнаруживает установку npm. Как мне получить node для обнаружения установки npm?

4b9b3361

Ответ 1

У меня была та же проблема. Это работало для меня, хотя:

Кажется, что npm (теперь?) устанавливает node модули на /usr/local/lib/node_modules/, а не /usr/local/lib/node/

То, что я сделал, это просто скопировать все из node_modules в node: sudo cp -r /usr/local/lib/node_modules/* usr/local/lib/node/, и теперь это работает для меня.

Надеюсь, это поможет вам: -)

Ответ 2

  • Установить экспресс

    npm install -g express

  • Создайте новое приложение

    express your_app

  • cd в каталог приложения

    cd your_app

  • используйте npm-ссылку для решения модулей

    npm link express

Ответ 3

Используйте локальные установки для require() и глобальной установки для приложений с командной строкой.

Если вам нужны оба варианта, используйте команду npm link.

Ответ 4

В Ubuntu 12.04 вам нужно добавить export NODE_PATH=/usr/local/lib/node_modules к вашему /.bashrc, чтобы использовать глобально установленные модули.

Ответ 5

Похоже, что в то время как npm был обновлен для установки глобальных модулей в /usr/local/lib/ node_modules, Node собственный require.paths еще не отражает это изменение.

Существует два разумных решения:

1. Добавьте следующий код в начало приложения:

require.paths.push('/usr/local/lib/node_modules');

Pro: неинвазивный, легко добавить

Con: требуется дисциплина, будущие версии Node ограничивают доступ к require.paths

2. Как root, выполните:

ln -s /usr/local/lib/node_modules /usr/local/lib/node

Pro: разумно неинвазивный

Con: требуется root, модифицирует linux fs, возможно, не сохранится обновление системы

Ответ 6

Как насчет NODE_PATH=/usr/local/lib/node_modules в .bashrc или .bash_profile? Я думаю, что это правильный правильный путь.

Ответ 7

Может случиться, что если вы используете окна, переменная среды NODE_PATH не установлена, и, таким образом, при выполнении node fileName.js библиотеки не будут найдены. Проверьте переменную на консоли, а если нет, создайте ее. Дайте ему значение NODE_HOME\ node_modules, где NODE_HOME - это ваш node установочный каталог. Этот путь - это где npm install размещает каждый модуль при загрузке.

Ответ 8

Установите NODE_PATH=NODE_HOME\node_modules.

Я использую Windows 7, и он отлично работает.

Ответ 9

require.paths удаляется, вместо этого используйте переменную среды NODE_PATH.

Ответ 10

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

Это последняя инструкция после express <appname>:

...
dont forget to install dependencies:
$ cd <appname> && npm install

Ответ 11

для всех проблем с выражением с компьютером mac:

Решение:

1.- скажите своему пользователю папку .npm:

sudo chown -R Webmaste/Users/webmaste/.npm/

  • В тестовой папке или в папке:

sudo npm install -g [email protected]

  • Вызвать экспресс из вашего фактического местоположения:

/USR/локальные/доли/НМП/бен/выразить

4: sudo cd. && npm install

5: наконец:

node приложение


окончательное сообщение в консоли должно выглядеть следующим образом:

Экспресс-сервер, прослушивающий порт 3000 в режиме разработки

Ответ 12

для пользователей Mac

cd /usr/local/lib/node
sudo ln -s ../node_modules/* ./$1

Ответ 13

Я установил gulp, и когда я запустил эту команду gulp в командной строке, я получил ошибку gulp: command not found. Оказалось, что он установил gulp в мою локальную папку /home/YOURUSERNAME/.node/lib/node_modules, а не в глобальную папку npm.

Вы можете проверить корневую папку npm, выполнив эту команду: npm root -g, которая возвращала мой личный каталог /home/YOURUSERNAME/.node/lib/node_modules, а не ожидаемый /usr/local/lib/node_modules.

Вы можете исправить это, выполнив команду npm config set prefix /usr/local.

Ответ 14

Наконец, с Linux хорошим способом является использование команды: sudo apt-get install node-express

Но с выражением 4 мы должны использовать экспресс-генератор для создания скелета приложения, установить его с помощью "npm install express-generator -g", а затем запустить команду "express myapp". см. также установить экспресс