zoukankan      html  css  js  c++  java
  • NodeJS 导入包的时候出现的 @types 错误导致程序无法运行

    在一次开发 NodeJS 项目的时候,我们希望包的导入是用 import 导入的方式。

    但是在具体导入的时候发现是使用 @types 导入的。

    如果上面的图显示的导入方式,结果结果是导致程序错误无法运行。

    问题和原因

    尽管我们在包的配置文件中添加了需要导入的包的版本。

    "bluebird": "^3.5.1",

    但是我们发现还是没有正确的使用,还是使用的是 @types 的方式。

    @types

    经过一些研究,有时候 @types 这个的使用是因为在 JS 世界中有很多的包不是通过 TypeScript 进行开发的,使用是普通的 JS 。

    为了让使用 JS 的库能够在 TypeScript 上使用,那么我们在导入的时候需要添加 @types

    但是我们的这个问题是,我们并没有添加需要的 @types/bluebird, 但是这个是从哪里来的呢?

    这个时候,我们需要找到这个包导入的依赖了。

    在导入这个包所在项目的文件夹中,打开 package.json 这个文件。

    在这个文件中也没有找到这个包的依赖,也不是使用types 定义的。

    只能从项目中的依赖找原因了。

    在这个文件中,我们会看到

     "_requiredBy": [
        "/@types/request-promise"
      ],
    

    这个就是让 @types/bluebird 导入的元凶了,因为这个类型是 @types 的,所以我们按照 @types 导入了 bluebird。

    但是实际使用的时候,我们的程序使用的是另外的一种导入方式。

    因此,针对这个问题,我们最简单的办法就是将 /@types/request-promise 从你的包的依赖中删除。

    这样就能解决我们上面遇到的问题了。

    https://www.ossez.com/t/nodejs-types/13801

  • 相关阅读:
    RHEL安装oracle客户端(版本为11.2)
    为服务器设置固定IP地址
    RHEL配置本地yum
    网线水晶头内线排序
    《汇编语言(第三版)》王爽著----读书笔记01
    kali系统越来越大解决
    Markdown入门简介
    Linux之tail命令
    Linux之df命令
    Linux命令
  • 原文地址:https://www.cnblogs.com/huyuchengus/p/15531758.html
Copyright © 2011-2022 走看看