После извлечения модуля из GitHub и следуя инструкциям по его сборке, я пытаюсь вставить его в существующий проект, используя:
> npm install ../faye
Это, кажется, делает трюк:
> npm list
/home/dave/src/server
└─┬ faye@0.7.1
├── cookiejar@1.3.0
├── hiredis@0.1.13
└── redis@0.7.1
Но Node.js не может найти модуль:
> node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'faye'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
Я действительно хочу понять, что здесь происходит, но я немного растерялся относительно того, где искать дальше. Какие-либо предложения?
node_modules
каталог будет находиться в корне вашего проекта, а такжеapp.js
в вашем случае. Почему вы использовали..
путь установки npm?Ответы:
Использование
npm install
устанавливает модуль только в текущий каталог (в подкаталог с именемnode_modules
). App.js находится подhome/dave/src/server/
? Если нет, и вы хотите использовать модуль из любого каталога, вам нужно установить его глобально, используяnpm install -g
.Обычно я устанавливаю большинство пакетов локально, чтобы они регистрировались вместе с моим кодом проекта.
Обновление (8/2019):
В настоящее время вы можете использовать файл package-lock.json , который автоматически генерируется, когда npm изменяет ваш каталог node_modules. Поэтому вы можете не проверять пакеты, потому что
package-lock.json
отслеживает точные версии ваших узлов_модулей, которые вы сейчас используете. Для установки пакетовpackage-lock.json
вместоpackage.json
используйте командуnpm ci
.Обновление (3/2016):
Я получил много ошибок за мой ответ, в частности, за то, что я проверяю пакеты, от которых зависит мой код. Несколько дней назад кто-то опубликовал все свои пакеты ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ), которые взломали React, Babel и почти все остальное. Надеюсь, теперь ясно, что если у вас есть производственный код, вы не можете полагаться на то, что NPM фактически будет поддерживать ваши зависимости для вас.
источник
package.json
список модулей npm, от которых вы зависите, и игнорироватьnode_modules
папку. Затем простоnpm install
получить настройки после клонирования репо.package.json
перечисления зависимостей, мне нравится хранить известные хорошие копии вещей, от которых я зависим. Дисковое пространство дешево, и если npm или пакет исчезнет из npm, у меня все еще будет полностью рабочий проект в моем репо.У меня была очень похожая проблема. Удаление всей
node_modules
папки и переустановка работали для меня:источник
npm install
/npm update
не будет решать. Это решило проблему, из-за которой вError: Cannot find module 'http-errors'
случайном порядке показывалось, когда я пытался запустить приложение Express.npm install
.Например, если ошибка:
затем вы можете решить эту проблему, выполнив команду
npm install --save form-data
.источник
ng new project-name
ее, показывая, что некоторые модули отсутствуют ... Мне пришлось установить их каждый с помощью данной команды. Затем это решило проблему, но Есть ли какая-либо команда, чтобы установить их все сразу?Для пользователей TypeScript, если вы импортируете встроенный модуль Node (например
http
,path
илиurl
), и вы получаете сообщение об ошибке, такое как,"Cannot find module "x"
то ошибку можно исправить, запустивКоманда импортирует определения NodeJS TypeScript в ваш проект, что позволяет вам использовать встроенные модули Node.
источник
Это происходит, когда первый нпм по какой-либо причине установка (SIGINT of npm), или если задержка была слишком большой или данные повреждены. Повторная попытка установки npm не спасет проблему.
Что-то пошло не так при первой проверке npm, поэтому лучший выбор - удалить файл и перезапустить установку npm.
источник
npm cache clear
и очистил node_modules, а затем решилnpm install
мою проблему.Если вы используете nvm, убедитесь, что существующие модули_узлов, которые являются привязками к другим библиотекам, скомпилированы для правильной версии Node.js.
У меня была такая же ошибка. Причина была в следующем: мы используем nvm, так как на сервере мы запускаем два приложения, одно требует Node.js 5.6, потому что он использует node-gd (который пока не работает на Node.js 6), другое требует Node.js 6. Node.js 6 - это установка apt-get .
Также мы используем инструмент pm2 для развертывания.
Итак, настройка по умолчанию состоит в том, что процесс pm2 запускается, когда nvm не действует, поэтому он использует установку apt-get Node.js (версия 6). Итак, основной демон pm2 начинается с Node.js 6. Если я запускаю приложения в режиме fork, они запускаются в отдельных процессах, и настройки nvm действуют. Когда я запускаю приложения в режиме кластера - они наследуют среду, отличную от nvm.
Поэтому, когда я попытался переключиться в режим кластера, приложение не запустилось, потому что привязки, скомпилированные для 5.6, не работают с этим сообщением.
Я исправил это, перезапустив pm2, когда настройки nvm действуют. Также должны быть исправлены сценарии запуска.
источник
Проверьте, правильно ли установлена переменная окружения NODE_PATH и указывает ли она на путь node_modules. nodejs использует эту переменную для поиска библиотек
источник
Я испытал эту ошибку вчера. Мне потребовалось некоторое время, чтобы понять, что
main
записьpackage.json
указывает на файл, который я переместил. Как только я обновил, что ошибка исчезла, и пакет работал.источник
main
запись для моего подмодуля в каталоге, который был исключен из его хранилища, поэтому, когда я попытался включить его черезnpm install
него, это сработало, но экспорт не был найден, когда это необходимо! Большое спасибо за этот очевидный, но полезный ответ.Удалите
node_module
корневую папку из вашего проекта (например:)myApp
. Перейдите вmyApp
папку и затем введите ниже команду из терминалаОн установит все зависимые модули, необходимые для вашего проекта.
источник
С этой ошибкой можно столкнуться, если вы
require
используете модуль с отсутствующим или неправильнымmain
полем в файле package.json. Хотя сам модуль установлен, npm / node должен использовать один файл .js в качестве точки входа в ваш модуль. Если этогоmain
поля нет, по умолчанию его ищутindex.js
в папке вашего модуля. Если основной файл вашего модуля не называется index.js, он не сможетrequire
этого сделать.Обнаружен при превращении
browserify
модуля на основе в модуль CommonJSrequire
;browserify
не заботился о пропавшемmain
поле, и поэтому ошибка осталась незамеченной.источник
Укажите путь к папке рестлера, которая будет внутри папки node_modules, например: var rest = require ('./ node_modules / restler');
Это сработало для меня.
источник
Если вы используете машинопись и получаете сообщение об ошибке после установки всех узловых модулей, удалите
package-lock.json
. А потом бегиnpm install
.источник
PRO TIP:
Эта ошибка произошла со мной, борясь с усталостью и легкой болезнью, потому что я печатал
node blah
вместоnpm blah
.Полученное сообщение об ошибке не было достаточно сердитым, чтобы предупредить меня о моей собственной глупости!
источник
Я столкнулся с той же проблемой, когда кто-то еще в команде обновился
package.json
в SVN. Простое удалениеnode_modules
каталога не помогло. Как я решил проблему:Надеюсь, это поможет кому-то!
источник
npm install
все работает хорошо.package.json
как NPM знает, что установить?Я могу добавить еще одно место для проверки; пакет, который я пытался использовать, был другим из моих собственных пакетов, которые я опубликовал для частного репозитория NPM. Я забыл правильно настроить свойство 'main' в package.json. Итак, пакет находился в папке node_modules потребляющего пакета, но я получал сообщение «не могу найти модуль». Мне понадобилось несколько минут, чтобы понять мою ошибку. :-(
источник
В моем случае я
UNMET PEER DEPENDENCY redux@^3.0.0
вызвал это сообщение об ошибке, просмотрите их все и снова установите отсутствующие модули, используя --save.источник
Удаление узла / npm, а затем повторная установка стабильной (не самой последней) версии работали для меня.
источник
В Appsome Solutions у нас была такая же проблема с конфигурацией нашего машинописного проекта, и мы добавили ее
"moduleResolution": "node",
в tsconfig.json, чтобы решить ее.источник
Я пытался опубликовать свой собственный пакет, а затем включить его в другой проект. У меня была эта проблема из-за того, как я построил первый модуль. Я использую экспорт ES2015 для создания модуля, например, скажем, модуль выглядит так:
После компиляции с Вавилоном и до опубликования:
Так что после
npm install module-name
в другом проекте (нет ES2015) я должен был сделатьvar hello = require('module-name').default;
Чтобы на самом деле получил пакет импортирован.
Надеюсь, это поможет!
источник
Обнаружена эта проблема при использовании
webpack
сwebpack-dev-middleware
.Превратил один файл в папку .
Наблюдатель, казалось, не видел новую папку, и модуль теперь отсутствовал.
Исправлено путем перезапуска процесса.
источник
Просто нашел необычный сценарий, который может быть кому-то полезен и является своего рода красной селедкой.
Я также получал ошибку Cannot Find Module, но, как ни странно, все отлично работало в моей локальной (размещенной на Mac) среде Node.js. Эта проблема появилась только тогда, когда код был развернут на нашем сервере Linux.
Ну ... оказалось, что это была опечатка, которую (по-видимому) установка Node.js на базе Mac была совершенно счастлива проигнорировать.
Включение выглядело так:
Но сам файл назывался "s3Uploader.class.js".
Обратите внимание на различие в регистре между 's' и 'S' между кодом и именем файла.
Так что - если есть вероятность, что ни одно из других решений здесь не решит вашу проблему, трижды проверьте, что вы не неправильно вводите символы во включенном имени файла! :)
и дух!
источник
Может быть, как и я, вы установили «механизм просмотра» в экспрессе на механизм, который не существует, или попытались использовать незарегистрированный шаблонизатор. Убедитесь, что вы используете:
app.engine('engine name',engine) app.set('view engine','engine name')
источник
Пожалуйста, установите новый CLI v3 (npm install -g ionic @ latest).
Если эта проблема все еще проблема в CLI v3. Спасибо!
источник
Если пакет успешно установлен, перейдите в папку node_modules, затем проверьте файл и путь. Затем импортируйте. Надеюсь это поможет.
источник
Прежде всего, да, часть моего ответа определенно полезна для устранения ошибки, которую выдает OP. Во-вторых, после попытки выполнения нижеприведенного шага я столкнулся с парой других ошибок, и поэтому написал решение этих проблем.
(Psst! Я не уверен, что я успешно помог в решении вышеуказанной ошибки, или я нарушил какое-то правило или формат ответа, но я столкнулся с вышеуказанной ошибкой и некоторыми другими, и мне потребовалось много времени, чтобы найти правильные решения для этих ошибок. Я пишу полное решение, потому что в случае, если кто-то еще сталкивается с этими ошибками, то он, надеюсь, найдет решение здесь.)
Итак, добавляя и развивая ответ, предоставленный PrashanthiDevi , а также добавляя мой личный опыт, вот оно:
Я новичок во всей части e2e и модульных тестов. Я начал изучать эту часть от транспортира . Теперь у меня уже были файлы, в которых были написаны тесты, но мне пришлось запускать тесты.
Я уже установил все необходимые программы и инструменты, но когда я первоначально запустил код для запуска тестов
gulp itest
, я получил эту ошибку «Не удается найти модуль» . Пройдя много разных вопросов по SO, я нашел один ответ, который, как мне казалось, мог бы помочь найти решение.Человек предложил запустить команду
npm install
в папке моего проекта.Причиной для этого было обновление узлов-модулей папки, в нашей папке проекта, со всеми необходимыми и необходимыми файлами и зависимостями.
(Следующая часть может быть неуместна в этом вопросе, но может быть полезна, если кто-то сталкивался с той же ситуацией, с которой я столкнулся.)
Вышеуказанный шаг наверняка решил мою предыдущую ошибку, но выкинул новую! На этот раз ошибка была
Could not find chromedriver at '..\node_modules\protractor\selenium\chromedriver'
.Тем не менее, решение этой ошибки было довольно глупо (и смешно) для меня. У меня уже был файл chromedriver в моей папке селена . Но, оказывается, что вышеупомянутая ошибка прибыла, потому что мои файлы chromedriver были в папке selenium, а не в папке chromedriver . Итак, создание папки chromedriver и копирование туда файлов chromedriver решило мою проблему!
Кроме того, для ошибки: Тайм-аут ожидания сервера WebDriver , вы можете добавить эту строку кода в файл conf.js внутри
exports.config{}
:seleniumAddress: 'http://localhost:8080/'
Надеюсь это поможет!
источник
Я получил простое решение, чтобы решить эту проблему.
Просто удалите C: \ Users \ Имя пользователя \ AppData \ Roaming \ npm \
и затем установите узел.
Теперь ваша проблема будет решена.
источник
Запустите только следующую команду:
Он установит все необходимые модули в
node_modules
папке.источник
это работа для меня.
источник
Измените каталог и укажите текущую папку проекта, а затем «npm install». ,
Это установит все зависимости и модули в папку вашего проекта.
источник
npm install
в правильном каталоге. В этом нет ничего такого негативного