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

Ошибка при запуске, ошибка: не удается найти выражение модуля после установки npm

Я новичок как для Node JS, так и для выражения, и я только что установил npm в Windows 7.

Я установил express с помощью глобального флага:

npm install -g express

Это успешно устанавливает выражение в C:\Users\USER_NAME\AppData\Roaming\npm\node_modules\express и добавляет C:\Users\USER_NAME\AppData\Roaming\npm к моему пути.

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

 'express' is not recognized as an internal or external command,
  operable program or batch file.

В папке установки я не могу найти исполняемый файл (.exe или .cmd). Прохождение прошлых вопросов показывает, что папка node_modules (по крайней мере, в прошлых версиях) должна содержать как папку с выражением (которая у меня есть), так и папку .bin, которая содержит express.cmd. Кажется, у меня нет папки .bin.

npm --version дает мне 1.4.3. Экспресс-версия выглядит 3.0.0

Я также попытался установить его локально, и я попытался запустить npm cache clean и переустановить. Ни один из методов не меняет ситуацию: в папке node_modules ничего не выполняется.

Я устанавливаю неверный указатель? Если да, то почему он не включает исполняемый файл?

4b9b3361

Ответ 1

Я столкнулся с той же проблемой в Windows 8.1. Экспресс .cmd не создан, но я нашел текстовый файл:

C:\Users\you\AppData\Roaming\npm\node_modules\express\Readme.md

Предлагается запустить это:

npm install -g [email protected]

Что будет загружать больше материала.

После этого вы можете использовать express в командной строке Windows. Это будет на вашем пути ( C:\Users\вы\AppData\Roaming\НПМ)

Edit:

[email protected] теперь обновляется до [email protected], поэтому используйте вместо этого

npm install -g [email protected]

Ответ не завершен, потому что модули установлены в каталог C:\Users\you\AppData\Roaming\npm, как указано выше, и вы не можете всегда получать доступ к любому модулю без 1) привязки его к вашему текущему проекту или 2) явного определения NODE_PATH системную переменную, указывающую ваш node на нужное место в системе.

Первый метод

После установки модуля (express в нашем случае) вы можете связать его с текущим проектом, перейдя в ваш текущий каталог проекта с помощью cmd и выполнив команду ниже,

npm link express

Вы получите сообщение, подобное этому, если оно успешно связано,

D:\Project\node_modules\express → C:\Users\Sufiyan\AppData\Roaming\НПМ\node_modules\выразить

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

Второй вариант - создать или обновить системную переменную NODE_PATH, указав ваш node в нужное место в системе. Подробнее читайте этот.

Также ознакомьтесь с официальной документацией Node.js относительно проблемы,

http://blog.nodejs.org/2011/03/23/npm-1-0-global-vs-local-installation/

Ответ 3

Чтобы исправить это, вам необходимо использовать:

npm install -g express-generator @3

Он был обновлен из предыдущей команды:

npm install -g express

Ответ 4

Просто помните, что версия как return командой express --version будет версией экспресс-генератора, а не выражать.

Ответ 5

У меня была эта проблема. Кажется, мы используем -g она игнорируется.

Я просто скопировал содержимое MyProject/source/vendor в C:\Users\username\AppData\Roaming\npm

Скопируйте только нужные папки внутри node_modules (например: express, express-generator, bower, yo, gulp и пакеты, которые должны быть в PATH).


Эта проблема действительно беспокоит всех (или пользователей Windows?), программисты npm должны ее решить!

Ответ 6

Запустите cmd как администратор. Он решил "экспресс" не найденную проблему в моем случае

Ответ 7

npm link express для ссылки express из любого каталога в каталог вашего проекта были node, по умолчанию при запуске npm install express он будет установлен в C:\Users\****\AppData\Roaming\npm\node_modules\express, поэтому вам не нужно устанавливать экспресс-и другие которые необходимо установить каждый раз в каталог проекта, вместо этого вы можете указать на свой node, то есть там, где у вас есть приложение.