1

我下载 ytdl-core 以运行 Angular 项目npm install ytdl-core --savehttps://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:\workspaces\customer\node_modules\miniget\dist'

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

    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';
                                  ~~~~~~

问题是什么?

4

1 回答 1

0

这是由浏览器中不可用的节点模块的依赖关系引起的。将这些添加到您的 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

在此处输入图像描述

于 2020-11-06T12:02:36.610 回答