node.js локальная установка npm приводит к ошибке chmod

#node.js #reactjs #npm #node-modules

Вопрос:

Я получаю ошибки при попытке запустить npm install приложение node/react, разработку которого я беру на себя.

Я не пытаюсь устанавливать какие-либо пакеты глобально. Я нахожусь на Macbook Pro M1 под управлением Big Sur. Я сделал новую установку node и npm с Homebrew. Я также попытался удалить package-lock.json файл, очистить кэш npm и добавить файл .npmignore в каталог, как предлагали некоторые другие сообщения; ни одно из них не сработало.

Вот результат, когда я запускаю npm install

 MacBook-Pro-2 frontend % npm install
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: [my project name]-dashboard@0.1.0
npm ERR! Found: webpack@5.39.0
npm ERR! node_modules/webpack
npm ERR!   webpack@"5.39.0" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer webpack@"^4.0.0" from optimize-css-assets-webpack-plugin@6.0.0
npm ERR! node_modules/optimize-css-assets-webpack-plugin
npm ERR!   optimize-css-assets-webpack-plugin@"6.0.0" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See /Users/<name>/.npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/<name>/.npm/_logs/2021-06-15T17_41_19_910Z-debug.log
 

Я попытался запустить npm install --legacy-peer-deps , что вызывает немного другую ошибку:

 MacBook-Pro-2 frontend % npm install --legacy-peer-deps
npm WARN deprecated @hapi/topo@3.1.6: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/pinpoint@1.0.2: Moved to 'npm install @sideway/pinpoint'
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @hapi/formula@1.2.0: Moved to 'npm install @sideway/formula'
npm WARN deprecated topojson@3.0.2: Use topojson-client, topojson-server or topojson-simplify directly.
npm WARN deprecated @hapi/address@2.1.4: Moved to 'npm install @sideway/address'
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated @hapi/hoek@8.5.1: This version has been deprecated and is no longer supported or maintained
npm WARN deprecated @hapi/joi@16.1.8: Switch to 'npm install joi'
npm ERR! code ENOENT
npm ERR! syscall chmod
npm ERR! path /Users/<name>/Developer/<directory>/frontend/node_modules/topojson/node_modules/topojson-simplify/bin/toposimplify
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/Users/<name>/Developer/<directory>/frontend/node_modules/topojson/node_modules/topojson-simplify/bin/toposimplify'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/<name>/.npm/_logs/2021-06-15T17_41_57_785Z-debug.log
 

Комментарии:

1. Можете ли вы отправить посылку.json?

Ответ №1:

Я решил свою собственную проблему. Я думаю, что это распространенное сообщение об ошибке со многими потенциальными решениями; вот 2 вещи, которые я попробовал, которые исправили проблему для меня:

  • Убедитесь, что у вас установлен postgresql (если ваш проект включает базу данных postgresql, как у меня). На mac с домашним пивом просто беги brew install postgresql .
  • Я также понизил свою версию Node.js до самой последней версии долгосрочной поддержки (ранее я использовал версию для разработчиков). На момент написания статьи версия LTS составляла 14.7.

После внесения этих изменений я смог правильно установить и запустить свой сайт.