如何构建一个简单的yarn包进行本地共享

Posted

技术标签:

【中文标题】如何构建一个简单的yarn包进行本地共享【英文标题】:How to structure a simple yarn package for local sharing 【发布时间】:2021-11-15 04:11:42 【问题描述】:

我想创建一个简单的纱线包,可以使用yarn add link:/path/to/package 由多个本地纱线项目安装。想象一下要共享的包的包是这样的

├── package.json
├── tsconfig.json
└── src
    ├── generated
    │   ├── abc.js
    │   ├── abc.d.ts
    │   └── def.js
    │   └── def.d.ts

我的目标是 abcdef 应该可以像这样访问

import * from "myPackage/abc"

目前,如果我使用yarn add link:/path/to/package 安装上述软件包,那么我必须这样做

import * from "myPackage/src/generated/abc"

我是制作打字稿包的新手,请原谅我。有人可以在这里指出我正确的方向吗?

我已经尝试了here 的建议,但没有任何作用。

【问题讨论】:

【参考方案1】:

所以看来我需要在package.json 中设置exportstypesVersions

  "exports": 
    "./": "./src/generated/"
  ,
  "typesVersions": 
    "*": 
      "abc": [
        "./src/generated/abc.d.ts"
      ],
      "def": [
        "./src/generated/def.d.ts"
      ],
    
  ,

【讨论】:

以上是关于如何构建一个简单的yarn包进行本地共享的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本地构建的 nuget 包进行调试?

Git解决冲突(本地共享仓库简单实践)

YARN支持的计算框架

[Linux] ubuntu下yarn依赖管理工具的安装和使用

使用yarn代替npm进行前端包管理

如何通过 Yarn 使用本地路径安装软件包?找不到包