Ошибка при запуске, ошибка: не удается найти выражение модуля после установки 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 ничего не выполняется.
Я устанавливаю неверный указатель? Если да, то почему он не включает исполняемый файл?
Ответы
Ответ 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/
Ответ 2
Это все, что вам нужно сделать:
C:\node> npm install -g express-generator
Вы можете найти это и многое другое в этом подробном учебном руководстве по запуску.
Ответ 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, то есть там, где у вас есть приложение.