Помилка: Не вдалося знайти модуль '../lib/utils/unsupported.js' під час використання Ionic


262

Я завжди отримую це повідомлення про помилку, коли запускаю "Ionic start project name":

Повідомлення про помилку

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):

    module.js:471
        throw err;
        ^

    Error: Cannot find module '../lib/utils/unsupported.js'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
        at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)

Відносний шлях невірний ..
Subburaj

перевірити шлях у ./bash_profile
Mohan Gopi

На MacOS - інсталяція з nodejs.org допомагає побачити upvotes з stackoverflow.com/a/12313655/1497139
Вольфганг Фахле

Відповіді:


774

Спробуйте видалити /usr/local/lib/node_modules/npmта встановити знову вузол. Це має спрацювати.

На MacOS з домашньою мовою :

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node

1
якщо хто -то хоче , щоб потрапити через видошукач: knowledge.autodesk.com/support/smoke/troubleshooting/caas / ...
A.com

13
Якщо ви використовуєте заварку, то можете використовувати: brew unistall --force nodeтаbrew install node
Ніко,

15
@Nico перша команда має помилку. Корекція буде brew uninstall --force node.
Jayant Bhawal

11
чому це відбувається?
Gaurav Paliwal

4
Після виконання вищевказаних команд тепер отримуємо >> -bash: / usr / local / bin / npm: Немає такого файлу чи каталогу
Tarun

81

Я дотримувався попередніх відповідей і перевстановлював вузол. Але я отримав цю помилку.

Попередження: Крок після встановлення не завершився успішно. Ви можете спробувати знову brew postinstall node

Тому я виконував цю команду

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

Потім побіг

brew postinstall node

або ви можете запустити sudo chown -R $ (whoami) $ (brew --prefix) / *
Pathfinder

27

Я отримав подібну помилку, і тепер я працюю.

Спочатку переконайтеся, що у вас є остання версія

brew update

Видаліть попередній примірник вузла:

brew uninstall node

Потім перевстановіть останню версію:

brew install node

А тоді переконайтеся, що він позначений символом у / usr / local, якщо його ще немає. Ви отримаєте помилку, щоб повідомити вас про виконання цього кроку.

brew link --overwrite node 

Докладніші відомості про встановлення / оновлення вузла також доступні .


12
Ви можете використовувати його, brew uninstall --ignore-dependencies nodeякщо, наприклад, у вас є yarnсистема.
Sound Blaster

18

На Mac OS X (10.12.6) я вирішив цю проблему, зробивши наступне:

brew uninstall --force node
brew install node

Потім я отримав помилку, скаржившись на те, що післявстановлення вузла не вдалося, і повторно brew postinstall node

Потім я отримав помилку:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

Я усунув цю помилку:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

І тепер я більше не отримую цієї помилки.


1
Мені довелося повторити це кілька разів у різних папках, які або потрібно було створити, або потрібно, щоб змінити їх власність (для мого користувача). Кожен раз, коли я біг brew postinstall nodeби знайти наступну проблему, виправити це, повторити.
Т. Кім Нгуен

9

Якщо ви використовуєте "n" бібліотеку @ https://github.com/tj/n . Виконайте наступне

  echo $NODE_PATH

Якщо шлях до вузла порожній, значить

sudo n latest    - sudo is optional depending on your system

Після перемикання версій Node.js за допомогою n, npm може не працювати належним чином.

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

Ви повинні побачити свій шлях до Вузла зараз. Інше, це може бути щось інше


8

Як згадувалося раніше.

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node

6

Спробував всі відповіді на встановлення пивоварення / старші завари, ніхто не працює для мого ноутбука.

Тільки нижче метод міг вирішити мою проблему.

1) Виконайте такі команди:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      

2) Потім перейдіть на офіційний веб-сайт Node.js https://nodejs.org/en/download/current/, щоб завантажити останній пакет для нової установки.

3) Запустіть команду npm ще раз, у якій більше не повинно виникнути помилок.

Цей метод працює над macOS Mojave версії 10.14.4 .



2

Так, вам слід перевстановити вузол:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node

2

Просто виконайте три кроки;

  1. Очистити npmкеш-пам'ять насильно:

    npm cache clean -f

  2. Встановити nпакет у всьому світі, використовуючи npm:

    npm install -g n

  3. Встановіть із будь-якого з трьох варіантів:

    а. sudo n stable (get the stable version)

    б. sudo n latest (get the latest version of node)

    c. sudo n x.x.x (get the specific version of node)


2

Помилка Cannot find module '../lib/utils/unsupported.js'викликана require('../lib/utils/unsupported.js')в ./lib/node_modules/npm/bin/npm-cli.js.

Згідно з requireдокументами nodejs , потрібний модуль шукається відносно файлу, як це починається з ../.

Таким чином, якщо ми беремо відносний шлях, ../lib/utils/unsupported.jsпочинаючи з ./lib/node_modules/npm/bin/npm-cli.js, необхідний модуль повинен знаходитися в ./lib/node_modules/npm/lib/utils/unsupported.js. Якщо його немає, я бачу два варіанти:

  • установка пошкоджена, в цьому випадку відповідь Вінцента Дукастела на перевстановлення вузла може спрацювати
  • npmне є символьним посиланням на ./lib/node_modules/npm/bin/npm-cli.js. Саме це спричинило помилку в моєму налаштуванні. Якщо ви зателефонували npm, зазвичай він знайде його пошук у каталогах, перелічених у PATHenv var. Наприклад, він може бути розташований у ./bin. Однак npmу ./binдовіднику має бути лише символьне посилання на вищезгадане ./lib/node_modules/npm/bin/npm-cli.js. Якщо це не симпосилання, але безпосередньо містить код, десь у процесі інсталяції символьне посилання було замінено файлом, на який він посилається. У цьому випадку має бути достатньо відтворити симпосилання:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Усі відповіді, які пропонують перевірити конфігурацію NODE_PATHабо npmrcповинні бути ігноровані, оскільки вони не враховуються при відносному пошуку модулів.


1

Я отримав цю помилку, змішавши методи встановлення / оновлення: встановлений вузол через завантаження пакету з веб-сайту, а пізніше я використовував варити для оновлення.

Я виправив, видаливши версію заварки:

пиво uninstall - вузол незалежних залежностей

Потім я повернувся на веб-сайт вузла і завантажив та встановив через менеджер пакунків: https://nodejs.org/en/download/ Чомусь не було спроб перевстановити через заварку.


0

У моєму випадку пропав $ NODE_PATH:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules" 
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

Перевірити лише echo $NODE_PATHпорожній - це не встановлено. Додайте їх до .bashrc рекомендується.


0

На Fedora 27 я вирішив проблему, зробивши це:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs

0

Це корисне відео та публікація в блозі про видалення вузла з ОС комп'ютера. Це інший метод видалення, заснований на тому, як ви встановили у першу чергу вузол (варити порівняно з двійковим файлом, завантаженим з https://nodejs.org/uk/

  • якщо ви встановили вузол з Homebrew, то заваріть видалення вузла буде працювати. Перевірте це, запустивши node -vкоманду у своєму терміналі.

  • В іншому випадку , і якщо ви встановили бінарний файл з сайту nodeJS ігрових , то ви повинні виконати цю команду в вашому терміналі: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Знову переконайтеся, що запустив команду node -v.

  • В обох випадках успішне видалення вузла повинно призвести до того, що bash не розпізнає, що таке вузол, якщо він повністю видалений


2
Посилання на рішення може бути підтримкою відповіді, але відповідь, яку ви опублікуєте, повинна бути повністю автономною, тобто не вимагати від відвідувачів переходу на інший сайт, який може містити несподіваний або шкідливий вміст або взагалі не існує.
трійчатка


0

Це може статися, коли npm/libпапка з якихось причин випорожнилася (також може статися через проблеми з дозволом під час останнього використання).

Перевстановлення вузла може вирішити проблему (як зазначено в інших відповідях тут), але я б запропонував використовувати чудовий інструмент під назвою nvm(Node Version Manager), який здатний керувати декількома версіями nodeі npm- це в основному корисно на верстатах для розробників з більш ніж одним проектом потрібні різні версії вузла.

Коли ви встановите nvm , це повідомлення відійде, і ви отримаєте останню версію nodeта npmдля використання.

Для того, щоб побачити список встановлених версій вузлів у вашому nvm, просто запустіть:

nvm list

Щоб встановити та використовувати нову версію вузла, запустіть:

nvm install <node_version>

Наприклад, щоб встановити останню версію вузла 10.x, запустіть:

nvm install 10

Щоб перейти на встановлену версію, запустіть:

nvm use <node_version>

Щоб перейти на оригінальну версію вузла системи, просто запустіть:

nvm use system

Сподіваюсь, це допомагає.

Удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.