Я написал модуль, который недавно опубликовал для npm (https://npmjs.org/package/wisp)
Так что он отлично устанавливается из командной строки:
$ npm i -g wisp
Однако, когда я запускаю его из командной строки, я получаю сообщение об ошибке, что оптимист не установлен:
$ wisp
Error: Cannot find module 'optimist'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
at Module._compile (module.js:449:26)
at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)
Тем не менее, я указал в package.json как зависимость:
{
"name": "wisp",
"author": "Brendan Scarvell <bscarvell@gmail.com>",
"version": "0.1.0",
"description": "Global nodejs file server",
"dependencies": {
"optimist": "~0.3.4"
},
"repository": "git://github.com/tehlulz/wisp",
"bin": {
"wisp" : "./wisp"
}
}
Кто-нибудь знает, что нужно сделать, чтобы это заработало? Я знаю, что это связано с тем, что часть bin добавляет исполняемый файл в bin, а node_modules в этом каталоге пустые. Не знаю, как решить эту проблему.
./node_modules/wisp/wisp
который работает отлично.Ответы:
Для всех, кто сталкивался с этим, у меня была эта проблема из-за моей
npm
установки в местоположение, которое не на моемNODE_PATH
.Мой NODE_PATH был пуст, и запуск
npm install --global --verbose promised-io
показал, что он устанавливается в/opt/lib/node_modules/promised-io
:Мой скрипт не работает на
require('promised-io/promise')
:Я, вероятно, установил узел и npm из источника, используя
configure --prefix=/opt
. Я понятия не имею, почему это сделало их неспособными найти установленные модули. На данный момент исправление заключается в том, чтобы указать NODE_PATH в правильном каталоге:Мой
require('promised-io/promise')
сейчас преуспевает.источник
export NODE_PATH=...
ее в локальной оболочке так, чтобы она экспортировалась в команды, запускаемые в этой оболочке. Чтобы сделать изменение постоянным или доступным для всех оболочек, поместите его в .profile или аналогичный. Концепция в целом очень сложна для новичка, попробуйте прочитать help.ubuntu.com/community/EnvironmentVariables . Для Windows вы захотите перейти на Linux. ОК, шучу. Попробуйте computerhope.com/issues/ch000549.htm или Google.open -a TextEdit ~/.bash_profile
в терминале, а затем добавьтеexport NODE_PATH=/usr/local/lib/node_modules
в конец файла. Перезапустите окно терминала. Теперь бегecho $NODE_PATH
должен распечатать/usr/local/lib/node_modules
.добавьте это в начало прог (mac):
module.paths.push('/usr/local/lib/node_modules');
источник
os.environ.nodepath
(что-то вроде этих строк).По умолчанию узел не ищет внутри / usr / local / lib / node_module для загрузки глобальных модулей. См. Загрузку модуля, описанную в http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
Поэтому вам нужно либо 1) добавить / usr / local / lib / node_module в NODE_PATH и экспортировать его, либо 2) скопировать установленные модули узлов в / usr / local / lib / node. (Как объяснено в ссылке для загрузки модуля, узел будет искать по этому пути и будет работать)
источник
Для некоторых (как я), которые больше ничего не работали, попробуйте это:
Надеюсь, это поможет кому-то :)
источник
Следующее общее исправление будет для любого модуля. Например с
request-promise
.замещать
С участием
работал ( источник ), а также для
globals
иinherits
Также попробуйте установить переменную среды
источник
Я получил ошибку модуля «optimist» и просто выполнил «npm install», чтобы устранить ее. прошел мимо этой ошибки.
https://github.com/mbloch/mapshaper/issues/12
источник
$ vim /etc/profile.d/nodejs.sh
источник
Для Windows, из Nodejs не удается найти установленный модуль в Windows? у меня получилось запустить ссылку npm как в
источник
npm install wisp --save
(без опции -g)Для пользователей Mac лучше всего использовать ручную установку:
Ссылка: https://docs.npmjs.com/getting-started/fixing-npm-permissions
источник
Была такая же проблема на одном из тестовых серверов, работающих
Ubuntu
подroot
. Затем создается новый пользователь , использующийuseradd -m myuser
и установил все (nvm
,node
, пакеты) в качествеmyuser
. Теперь работает нормально.источник
На Windows, если вы только что сделали чистую установку, и вы получите это, вам нужно сдуть свой npm-кэш в \ AppData \ Roaming
источник
В моем случае оба
node
иnpm
были в одном пути (/usr/bin
). ОнNODE_PATH
был пуст, поэтомуnpm
размещал глобальные модули/usr/lib/node_modules
там, гдеrequire(...)
успешно их находил. Единственным исключением былnpm
модуль, который шел с пакетом nodejs. Поскольку я использую 64-битную систему, она была помещена в/usr/lib64/node_modules
. Это не тот случай, когда требуется (...) поиск в случае пустогоNODE_PATH
и начавшегося узла/usr/bin
. Итак, у меня было два варианта:/usr/lib64/node_modules/npm
на/usr/lib/node_modules/npm
/usr/lib/node_modules/*
в/usr/lib64/node_modules/
и установитьNODE_PATH=/usr/lib64/node_modules
Оба работали. Я использую OpenSUSE 42.1 и пакет nodejs из репозитория обновлений. Версия 4.4.5.
источник
Я сделал это простым способом ...
npm install --global --verbose protractor
Обновление менеджера веб-драйверов.
у меня отлично работает
Надеюсь, это поможет вам ....
источник
Я получил эту ошибку
Error: Cannot find module 'number-is-nan'
тогда как модуль действительно существует. Это произошло из-за плохой / неполной установки Node.js.Для Windows, как подсказывают другие ответы, вам нужна чистая установка Node :
npm
иnpm_cache
вC:\Users\user\AppData\Roaming
npm init
или (npm init --yes
для конфигурации по умолчанию )NODE_PATH
. Этот путь - то, где ваши пакеты установлены. Это наверное что то типаNODE_PATH = C:\Users\user\node_modules or C:\Users\user\AppData\Roaming\npm\node_modules
npm
должна нормально работатьПримечание :
Попробуйте последние пункты перед переустановкой Node.js, это может сэкономить вам время и избежать переустановки всех ваших пакетов.
источник
Я только что встретил эту проблему
axios
модуля. Тогда я попробовал это: запуститьrm -rf node_modules
иyarn
. И это работает.источник
У меня была та же ошибка, что и у ОП, но копаясь в логах я видел
sh: node: command not found
.Оказывается, что программа / usr / bin / node (symlink) больше не устанавливается с
apt install nodejs
. Однажды символическая/usr/bin/node' to
ссылка на nodejs,
npm install -g @ angular / cli` завершился успешно.Правильный способ установить это на Debian есть
apt install nodejs-legacy
.источник
Мне пришлось добавить C: \ Users \ {Имя пользователя} \ AppData \ Roaming \ npm в мои переменные env, а затем я мог установить вещи.
источник