Не удается найти модуль «http» или соответствующие ему объявления типов, пока я пытаюсь включить ytdl-core

#angular #ytdl

#angular #ytdl

Вопрос:

Я загружаю ytdl-core для запуска проекта angular npm install ytdl-core --save (https://www.npmjs.com/package/ytdl-core ). Для использования этого модуля я делаю:

 import ytdl from 'ytdl-core';

ytdl(url);
  

Когда я запускаю приложение angular, оно показывает следующее сообщение:

 ERROR in ./node_modules/miniget/dist/index.js
Module not found: Error: Can't resolve 'http' in 'D:workspacescustomernode_modulesminigetdist'

ERROR in ./node_modules/miniget/dist/index.js
Module not found: Error: Can't resolve 'https' in 'D:workspacescustomernode_modulesminigetdist'

    ERROR in node_modules/ytdl-core/typings/index.d.ts:2:33 - error TS2307: Cannot find module 'http' or its corresponding type declarations.
2   import { ClientRequest } from 'http';
                                  ~~~~~~
  

В чем проблема?

Ответ №1:

Это вызвано зависимостями модулей узла, которые недоступны в браузере. Добавьте их в свой файл package.json.

 "browser": {
  "http": false,
  "https": false,
  "net": false,
  "path": false,
  "stream": false,
  "tls": false
}
  

Удалите папку node_modules и выполните эти команды

 npm install
npm install stream
npm install --save-dev @types/node
npm install ytdl-core --save
  

Перейдите в свою node_modules/ytdl-core/typings папку и удалите эти строки из index.d.ts

 import { ClientRequest } from 'http'; // Delete this
  

введите описание изображения здесь