【问题标题】:Problem with npm resolution resolution from package requiring third dependency来自需要第三个依赖项的包的 npm 解析问题
【发布时间】:2019-03-20 10:15:16
【问题描述】:

我有一个需求问题,希望你能帮助我。

我有 1 个名为 @unicoderns/orm 的包,需要 mysql https://github.com/unicoderns/ORM

现在我尝试编写另一个名为 @unicoderns/cerberus 的开源包,cerberus 将 orm 作为依赖项,但是当我尝试构建 cerberus 时出现此错误:

node_modules/@unicoderns/orm/connection.d.ts:4:24 - 错误 TS7016:找不到模块“mysql”的声明文件。 '/home/chriss/Sites/cerberus/node_modules/mysql/index.js' 隐含了一个 'any' 类型。 尝试npm install @types/mysql(如果存在)或添加包含declare module 'mysql'; 的新声明(.d.ts)文件

4 import * as mysql from "mysql";

明明是想查找Ceberus中mysql的类型,但是不存在,为什么?

编辑 1:错字

【问题讨论】:

    标签: mysql node.js typescript node-modules


    【解决方案1】:

    @unicoderns/orm 在其devDependencies 中列出@types/mysql,因此当您直接在@unicoderns/orm 中运行npm install 时会安装@types/mysql,但当您在另一个依赖于@987654329 的包中运行npm install 时不会安装@(如@unicoderns/cerberus)。如果@unicoderns/orm 将有一个声明文件,例如connection.d.ts,它引用来自@types/mysql 的声明并打算由依赖包加载,那么the recommendation 是将@types/mysql 放在常规dependencies@unicoderns/orm 避免你看到的问题。

    【讨论】:

    • 谢谢马特 我几乎可以肯定是这样,但想要验证,再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2021-07-31
    • 2017-12-17
    • 2017-04-14
    • 2018-12-09
    • 2016-04-22
    • 2021-02-21
    相关资源
    最近更新 更多