gpt4 book ai didi

angular - 如何在导入时没有 "dist"的情况下在 NPM 上发布 TypeScript 模块?

转载 作者:太空狗 更新时间:2023-10-29 17:20:11 26 4
gpt4 key购买 nike

我正在尝试在 NPM 上发布 typescript 库,但发布后我无法找到“好的”路径。

我在这一点上遵循了几个指南,但我没有找到解决方案。

问题:因此,考虑以下结构:

dist
|- Alls files generated after tsc build
lib
|- All TS files of library (source)
CHANGELOG.md
LICENSE
package.json
README.md
tsconfig.json

发布后,例如在 Angular 应用程序中,我将输入:

import {Component} from '<library name>/dist/Component';

我的问题:如何将项目导入配置为 from '<library name>/Component'相反 from '<library name>/dist/Component'好吗?

谢谢

最佳答案

我找到了一个非常干净的解决方案,不需要将 package.json 复制到 dist 或从 dist 发布。

您可以将您的项目构建为:

package.json (for entire project)
src
| secondary-package-name
|- index.ts
secondary-package-name
|- package.json (for secondary-module-name)
dist
|- generated files

您的辅助模块的 package.json 只需要包含

{
"name": "package/secondary-package-name",
"private": true,
"main": "../dist/secondary-package-name/index.js"
}

指向你的dist

然后您应该能够像这样引用二级包的导出:

import { someFn } from "package/secondary-package-name"

前提是从该目录下的index.ts文件中导出

您还需要确保主 package.json 的 files 字段包括:

"files": [
"dist",
"secondary-package-name"
],

关于angular - 如何在导入时没有 "dist"的情况下在 NPM 上发布 TypeScript 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49858168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com