NPM, не может найти "грациозно-fs", независимо от того, что я делаю
Это то, что я получаю, когда пытаюсь установить express для node.js
npm install express
module.js:340
throw err;
^
Error: Cannot find module 'graceful-fs'
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/share/npm/lib/utils/ini.js:32:10)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
Я даже пробовал других и по-прежнему получал ту же ошибку. Я сделал рытье, и я нашел "gracefui-fs" на моем сервере.
Я запускаю ubuntu 12.04 LTS на сервере amazon ec2. Node установлен без ошибок, а npm все еще не работает. Я также установил и установил npm с помощью
apt-get
а также из источника. Во время установки я также не получил никаких ошибок.
Ответы
Ответ 1
Была та же проблема. Не загружайте npm
из aptitude
или apt-get
.
Вместо этого попробуйте:
git clone git://github.com/isaacs/npm.git
cd npm/scripts
chmod +x install.sh
sudo ./install.sh
увидел это здесь: NPM не может установить appjs. Ошибка: не удается найти модуль "изящный-fs"
Ответ 2
У меня была та же проблема.
sudo npm install
решил это для меня.
Ответ 3
Я также использовал Ubuntu 12.04 и имел эту же проблему (хотя я не думаю, что это именно ошибка Ubuntu).
[email protected]:~/git/SyntaxHighlighter$ npm
module.js:340
throw err;
^
Error: Cannot find module 'graceful-fs'
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/share/npm/lib/utils/ini.js:32:10)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
Итак, я попытался выяснить, откуда была запущена npm:
[email protected]:~/git/SyntaxHighlighter$ sudo find / -name npm
/etc/bash_completion.d/npm
/usr/bin/npm
/usr/local/bin/npm
/usr/local/n/versions/0.8.7/bin/npm
/usr/local/n/versions/0.8.7/lib/node_modules/npm
/usr/local/n/versions/0.8.7/lib/node_modules/npm/bin/npm
/usr/share/lintian/overrides/npm
/usr/share/doc/npm
/usr/share/npm
/usr/share/doc-base/npm
/usr/lib/nodejs/npm
/var/lib/doc-base/documents/npm
Для справки, это были две ссылки:
/usr/bin/npm -> ../share/npm/bin/npm-cli.js*
/usr/local/n/versions/0.8.7/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js*
Подтверждение использования "/usr/bin/npm":
[email protected]:~/git/SyntaxHighlighter$ which npm
/usr/bin/npm
Итак, я попытался назвать последнее, особенно похожее на трюк:
[email protected]:~/git/SyntaxHighlighter$ /usr/local/n/versions/0.8.7/bin/npm install
npm WARN package.json [email protected] No README.md file found!
npm http GET https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/less
npm http GET https://registry.npmjs.org/jake
npm http GET https://registry.npmjs.org/minimatch
npm http 200 https://registry.npmjs.org/uglify-js
npm http GET https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz
npm http 200 https://registry.npmjs.org/less
npm http GET https://registry.npmjs.org/less/-/less-1.3.0.tgz
npm http 200 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.2.6.tgz
npm http 200 https://registry.npmjs.org/less/-/less-1.3.0.tgz
npm http 200 https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.3.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.2.6.tgz
npm http 200 https://registry.npmjs.org/jake
npm http GET https://registry.npmjs.org/jake/-/jake-0.3.14.tgz
npm http 200 https://registry.npmjs.org/jake/-/jake-0.3.14.tgz
npm http GET https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/utilities
npm http GET https://registry.npmjs.org/minimatch
npm http 304 https://registry.npmjs.org/minimatch
npm http GET https://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz
npm http 200 https://registry.npmjs.org/utilities
npm http GET https://registry.npmjs.org/utilities/-/utilities-0.0.11.tgz
npm http 200 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-2.0.1.tgz
npm http 200 https://registry.npmjs.org/minimatch/-/minimatch-0.0.5.tgz
npm http 200 https://registry.npmjs.org/utilities/-/utilities-0.0.11.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-2.0.1.tgz
npm http GET https://registry.npmjs.org/lru-cache
npm http 304 https://registry.npmjs.org/lru-cache
npm http GET https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz
npm http 200 https://registry.npmjs.org/lru-cache/-/lru-cache-1.0.6.tgz
npm WARN prefer global [email protected] should be installed with -g
[email protected] node_modules/uglify-js
[email protected] node_modules/less
[email protected] node_modules/minimatch
+-- [email protected]
[email protected] node_modules/jake
+-- [email protected]
+-- [email protected] ([email protected])
В конце концов, похоже, что, возможно, потому, что у меня были другие версии node и npm, установленные в прошлом, это просто запуталось.
Ответ 4
Итак, после установки node_js и npm у меня была та же проблема
my-app$ locate graceful-fs
/usr/lib/nodejs/graceful-fs
... some other junk we don't care about ...
my-app$ export NODE_PATH=/usr/lib/nodejs
my-app$ npm update
... it works ...
Ответ 5
Только за мои два цента.
Я устанавливаю с помощью
sudo npm install -g graceful-fs
Это устанавливает грациозно-fs глобально, и это решило мою проблему.
Ответ 6
По умолчанию Node ищет модули в вашем проекте в ../CollinsProject/node_modules
.
Попробуйте переместить изящный fs в эту папку, и он должен работать.
Если вы хотите установить модуль, который будет использоваться глобально (по другим проектам), переместите папку graceful-fs в /usr/local/lib/node_modules
.
Ответ 7
Имел подобную проблему на Ubuntu при установке телефонной затычки, исправил ее с помощью
sudo npm install graceful-fs
Ответ 8
Я использую Windows; аналогичный должен работать в Mac и Linux
npm в кордове неправильно, а cordova использует частную npm
перейдите в C:\Users\sssca_000\AppData\Роуминг\npm\ node_modules\cordova\node_modules Переименуйте npm в npm_XXX
Перейдите к C:\Users\sssca_000\AppData\Roaming\npm\ node_modules Здесь находится реальная версия npm. Скопируйте каталог npm отсюда в C:\Users\sssca_000\AppData\Roaming\npm\node_modules\Cordova\node_modules
Это сработало для меня!
Ответ 9
Я сам признаюсь в маппете, когда дело доходит до linux, но пробило себе путь к решению. Я запускаю ubuntu 12.04 и имел ту же проблему. Пробовал это, и это сработало для меня, может быть, лучший человек, чем я, может объяснить, почему и может даже работать на вас:
sudo npm install socket.io
Я ранее устанавливал npm и node из git, и все, казалось, работали, пока я не попытался установить меньше и получил ту же ошибку, что и OP.
Ответ 10
То же самое происходит и в Windows, если вы устанавливаете в пользовательский каталог. Вам необходимо снова и снова удалить и установить его по умолчанию.
Ответ 11
Я столкнулся с той же проблемой, и после поиска в Интернете единственное, что сработало для меня, это переустановить nodejs, nodejs-dev и npm. Я следил за указаниями с этого сайта:
https://github.com/joyent/node/wiki/installing-node.js-via-package-manager
Ответ 12
Решение для меня на окнах 10 после установки последней стабильной версии node
- Удаление текущего каталога npm в главном каталоге nodejs/node_modules
- Клонирование последней сборки npm https://github.com/npm/npm.git в nodejs/node_modules dir
Ответ 13
В моем случае CENTOS 7 мне пришлось удалять файлы старой версии lib.
rm -rf /usr/lib/node_modules/*
После этого a yum reinstall nodejs
решил!