Ответы пользователя по тегу Node.js
  • Как управлять громкостью Windows через Node JS?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Я вот тоже озаботился данным вопросом... Оказалось не так всё просто как может показаться на первый взгляд.

    Практически во всех обсуждениях для того чтоб дёргать WinAPI советуют использовать решения на основе node-ffi, а она, в свою очередь, требует наличия на компе всего необходимого для ребилда node-gyp, а это - питон и visual studio (несколько гигов). Есть ещё варианты типа win-audio, но там те же грабли шизофреничные — для компиляции нужен node-gyp со всеми вытекающими...

    Короче, тут один энтузиаст переписал node-ffi на расте, и там все эти костыли не нужны, хотя поставить компилятор G++ всё же придётся, но он работает без танцев с бубном и весит всего сотню метров.

    Я для себя сделал вот такое, возможно кому-то пригодится: https://github.com/Psychosynthesis/AudioManager
    Ответ написан
    Комментировать
  • Почему NPM пакеты устанавливаются долго, а то и вообще не устанавливаются?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    Данная проблема встречается во многих версиях npm и NodeJS, и, насколько я понимаю, в некоторых случаях может быть актуальна до сих пор, потому решил ответить на вопрос сейчас.

    Насколько я понял из гугления, если исключить самую очевидную проблему ("у вас проблемы с инетом"), то причин подобного поведения может быть множество. Я расскажу как я оказался в аналогичном положении и что делал для решения проблемы, возможно кому-то это будет полезно.

    В моём случае однажды появился назойливый баг с алиасами Babel, что в итоге потребовало его обновления, а после обновления Бабеля просто перестал собираться проект. Пришлось обновлять Node, затем npm и т.д. В итоге, проект всё же собрался, но появилась проблема, озвученная в вопросе - npm ci (это почти то же что и npm install, только ставит строго те версии, которые указаны в package-lock) стал работать ооочень медленно, подолгу зависая на разных случайных пакетах.

    Я предположил, что причин у подобной ситуации в итоге может быть две:
    1. Забился кэш ноды и\или npm - я пробовал npm cache clean --force и удалял все папки, создаваемые при сборке, а также все найденные мною папки cache, это не помогло. В итоге я не придумал ничего лучше, чем полностью удалить Node и npm из системы, что не так-то просто сделать на линуксе.
      Для удаления ноды мне лично неплохо помог вот этот пакет https://github.com/brock/node-reinstall (правда руками тоже потом пришлось искать и удалять папки с именами node и npm)... Для свежей установки ноды в сети советуют использовать NVM, однако на мой личный взгляд NVM это паршиво работающее, запутанное и кривое говно, с корявой документацией и постоянно изменяющимся синтаксисом команд, поэтому я так делать не советую (да, я пробовал, он работает, но с ним постоянно возникают какие-то проблемы, поэтому без необходимости иметь две разных ноды на одной машине его лучше всё же не ставить).
      Лучше ставьте нужную версию ноды по инструкции с офф.сайта для вашей системы, используя стандартный менеджер пакетов. По крайней мере в случае с Ubuntu 20.04 это сработало отлично. Инструкции для Ubuntu и Debian-based дистрибутивов лежат вот тут: https://github.com/nodesource/distributions/blob/m...

      Вообще там по ссылке много вариантов, но вот пример для установки 14-й версии самым простым способом:
      # Using Ubuntu
      	curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
      	sudo apt-get install -y nodejs
      
      	# Using Debian, as root
      	curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
      	apt-get install -y nodejs



    2. Второй возможный вариант - проблема в том, что для новых версий npm как-то изменились сервера удалённых репозиториев некоторых старых пакетов, из-за их устаревания (я замечал что при попытке установить пакеты чаще всего "фризы" случались именно на старых пакетах, типа третьей версии TypeScript).
      Я, к сожалению, не знаю нюансы работы системы репозиториев npm, поэтому это лишь предположение. В данном случае, рекомендация одна - попытаться обновить пакеты до последних версий, и по возможности избавиться от depricated пакетов.



    Не претендую на истину, возможно это лишь баг какой-то из версий npm или даже конкретной связки NodeJS + npm. Однако возможно кому-нибудь пригодится предложенный мной путь решения.
    Ответ написан
    Комментировать
  • Почему Node не дает запустить приложение, ошибка ENOSPC?

    Psychosynthesis
    @Psychosynthesis
    Fullstack developer and radio engineer
    На случай, если кто-то будет искать решение по аналогичной проблеме.

    npm отказывался запускаться (после установки create-react-app), выдавая ошибку:
    Error: ENOSPC: System limit for number of file watchers reached, watch '/home/user/reai-comp/public'

    Чистка кэша не помогала. У некоторых помогает перезагрузка, но не в моём случае.
    Решила проблему единственная команда:
    echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
    Ответ написан
    2 комментария