使用 webpack 生成捆绑 TypeScript 定义文件

2024-04-22

我目前正在使用“gulp”来生成我的包的定义文件,如下所示:

dtsGenerator.default({
    name: 'ngFramework',
    project: './',
    out: './Typings/raw/index.d.ts'
});

但是,我正在迁移到 webpack,并且我想找到一种方法来做到这一点。我尝试了“tsconfig”中的“声明”标志,但它只是为每个“ts”文件创建定义文件,这不是我想要的(我想要捆绑包的定义文件)。

我尝试了“dtsbundler-webpack-plugin”,但无法使其按预期工作。如果没有“tsconfig”的“声明”标志,生成的文件是“0字节”,有了它,我有很多错误。


你应该使用DTS 捆绑包 https://github.com/TypeStrong/dts-bundle用WebPack生成bundle。您应该将声明标志保留为 true 并尝试以下操作:

General

var path = require('path');
var rootDir = path.resolve(__dirname);

编写简单的插件

function DtsBundlePlugin() {}
DtsBundlePlugin.prototype.apply = function (compiler) {
    compiler.plugin('done', function () {
        var dts = require('dts-bundle');

        dts.bundle({
            name: 'your-lib-name',
            main: rootDir + '/build/types/**/*.d.ts',
            out: rootDir + '/build/index.d.ts',
            removeSource: true,
            outputAsModuleFolder: true 
        });
    });
};

更多信息可以找到在 Vladimir Tolstikov 的这篇博文中 https://medium.com/@vladimirtolstikov/how-to-merge-d-ts-typings-with-dts-bundle-and-webpack-e8903d699576.

登记

plugins: [
    new DtsBundlePlugin()
]

我已成功捆绑打字,但与我的源代码相关的捆绑代码遇到了一些问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 webpack 生成捆绑 TypeScript 定义文件 的相关文章

  • Angular 5 webpack 3 aot

    我正在尝试使用 webpack 3 和 Angular 5 进行 aot 构建 但是网上有很多教程 没有一个没有问题地显示完整的示例 到目前为止我已经有了以下配置 对于那些对路径有疑问的人 我在 java 应用程序中使用它 webpack
  • 如何在 Angular 4 材料的 Stepper 中提交表单

    如何在角材料的步进器中提交表单数据 我正在遵循角材料的示例https material angular io components stepper examples https material angular io components
  • 在打字稿中读取和写入文本文件

    我应该如何从 Node js 中的 TypeScript 读取和写入文本文件 我不确定是否会在 node js 中读 写沙箱文件 如果没有 我相信应该有一种访问文件系统的方法 相信应该有一种访问文件系统的方法 Include node d
  • 在 TypeScript 中使用三个 Js + OrbitControl

    我无法得到this http www example com 在 TypeScript 中使用上述组合的示例 I have and 在我的html中和打字稿文件
  • 从条件映射类型中排除“{}”

    我们在以下界面上工作 interface A a string b string c number d number 我们有一个类型可以让每个键都在T optional如果他们的类型是string and required如果是number
  • Javascript 中左侧的可选链接

    是否可以使用可选链接 https developer mozilla org en US docs Web JavaScript Reference Operators Optional chaining运算符位于赋值的左侧 在 JavaS
  • 如何为十六进制颜色字符串创建独立类型?

    我正在尝试在 TypeScript 中创建一个独立类型 可用于将单个有效的十六进制颜色代码表示为完全类型安全的字符串 我的尝试如下 但由于实际上不是独立类型而未能实现 而这正是我希望实现的目标 type HexDigit
  • 未捕获的类型错误:emit 不是 vue3 中的函数

    当我在 vue 3 设置代码块中编写此代码以获取输入值时 请遵循此answer https stackoverflow com questions 66737918 how to use v model on component in vu
  • 如何在打字稿订阅功能之外获取价值

    我对某些服务有以下订阅功能 this sub this route params subscribe params gt this id params id this someService thisById this id subscri
  • TSLint :变量名必须是驼峰或大写

    我有一些以下划线开头的变量名称 更新 tslint json 后我仍然收到此警告 tslint json extends tslint recommended rules variable name true ban keywords ch
  • 什么是 Tree Shaking?为什么需要它?

    我已经开始学习 Angular 2 并且遇到了 tree shake 这个术语 但我无法从初学者的角度找到任何好的解释 我在这里有两个问题 什么是 Tree Shaking 为什么需要它 我该如何使用它 我看到你在这里有三个问题 1 什么是
  • 当数据未定义或为空时如何使用 Lodash

    在我的应用程序中 如果来自服务的数据未定义或为 null 我的 html 将无法加载 并且会收到 数据未定义 错误 所以我尝试使用lodash 但不知道如何使用它 在我下面的 ts 文件中 this PartService GetDataV
  • Typescript 泛型 - “扩展对象”毫无意义吗?最佳实践是什么?

    我注意到了 p 泛型通常是没有意义的 因为基本上 javascript 中的所有内容都是对象 大多数文字都是具有 toString 方法的对象 字符串是具有 length 属性等的对象 我更喜欢 p p 但很好奇其他人注意到了什么 我现在没
  • 创建反应应用程序打字稿不加载 d.ts 文件

    我使用 create React app typescript 创建了一个项目 我有一些 d ts 文件 其中定义了接口类型和枚举 当我运行启动脚本时 它无法加载 d ts 文件 以下是我的 tsconfig 文件 compilerOpti
  • Ionic 2 自定义后退按钮操作

    我想自定义此屏幕截图中提到的后退按钮的单击操作 我希望通过单击我不会返回到上一页 而是返回到我自己指定的页面 或者在返回之前进行处理 要自定义默认后退按钮操作 您需要覆盖返回按钮点击 NavBar 组件的方法 Step 1 在你的 自定义类
  • Angular 2 的最佳模块加载器? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我已经使用了 JavaScript 和 Angular JS 1 AMD requireJS Brow
  • Firebase 管理 SDK 错误:表达式的类型为“void”。将其作为声明放在自己的行中

    我正在关注 firebase 中的这个例子 https firebase google com docs functions get started https firebase google com docs functions get
  • 从打字稿中的数组中删除对象

    如何从打字稿中的数组中删除对象 revenues drug id 20 quantity 10 drug id 30 quantity 1 所以我想从所有对象中删除 drug id 我怎样才能做到这一点 谢谢你 你可以用它 this rev
  • Webpack 编译的 Chrome 扩展抛出 `unsafe-eval` 错误

    使用 Webpack 编译后重新加载 Chrome 扩展时出现此错误 Uncaught EvalError Refused to evaluate a string as JavaScript because unsafe eval is
  • Webpack 忽略导入

    我正在导入一个第三方模块 该模块导入另一个模块 import fetch from cross fetch 我想告诉 Webpack 忽略 删除此导入 因为变量fetch已经存在于全局命名空间中 那可能吗 您可以指定某个模块位于全局环境中e

随机推荐

  • 从无符号除法结果分配时有关符号转换的警告

    我编译了以下代码 Wsign conversion int main unsigned int a 8 int b a 8u warning implicit conversion changes signedness unsigned i
  • 如何防止“CoreData无法完成故障”?

    我们偶尔会收到 CoreData 无法完成故障 的信息 我们已阅读 Apple 文档 但不清楚允许保留哪些内容 我们非常小心地为每个线程创建一个上下文等 但是 我们的应用程序正在做的一件事是我们在 UIViewController 上保留
  • PHP 空 $_POST

    我通过 HTTP POST 向 PHP 发送数据 这对于短于 8MB 8192KB 的数据来说效果很好 但是当发送的数据量更大时 PHP 会显示 POST变量为空 我强调的是 POST变量甚至不包含帖子字段的名称 它作为空数组存在 临界点似
  • Python RuntimeError:字典在迭代期间更改了大小[重复]

    这个问题在这里已经有答案了 我正在练习一个非常简单的Python代码 我试图找到它的解决方案 但找不到 def del contacts for name number in d1 items if del name name del d1
  • 查找两个数组中的重复值,Python

    我有两个数组 A 和 B 每个数组约有 50 000 个值 每个值代表一个 ID 我想创建一个包含三列的 pandas 数据框 col1 数组 A 中的值 col2 数组 B 中的值 col3 带有标签 唯一 或 重复 的字符串 在每个数组
  • Process.Start 返回 null 时查找进程 ID?

    如果我尝试通过调用打开图像文件 视频或网站Process Start filepath 直接 那么它通常会成功 但是 Process Start 的返回值有时将为 null 正如这里所讨论的 https stackoverflow com
  • 将硬编码文件路径更改为 VBA 中提示的用户?

    现在 我有一个用于 Word 的 VBA 宏 它可以解析文档中的某种字体 并将所选类型的所有字体输出到文本文件 我打开文本文件的硬编码行是这样的 Open C Documents and Settings Output txt For Ou
  • 实现共享功能的标准方法

    我需要在 iOS 中实现 共享为 功能 例如 一个按钮名为 共享为 并弹出一个对话框 其中包括电子邮件 短信 Facebook Twitter 等项目 我想知道是否有一个标准对话框可以完成这项工作 经过搜索 我发现在 iOS6 中使用 UI
  • 如何使用 C 客户端通过 ActiveMQ 启用 SSL

    我已经配置了 ActiveMQ http activemq apache org http activemq apache org 通过以下方式使用 ssl 上下文RedHat 的 SSL TLS 教程 https access redha
  • HTML 树全宽悬停效果

    我有一个 html 树 主要由嵌套的无序列表组成 我需要为每个叶子创建全宽悬停效果 类似于 Windows 文件菜单树悬停效果 悬停效果是 div div 具有背景颜色和边框 我做了一个模拟全宽度的黑客 但侧面边框不再可见 我可以使用 CS
  • C++/CLI:CA2123:需要 SecurityCriticalAttribute?

    我对这样的错误有点迷失 警告 7 CA2123 Microsoft Security 添加以下安全属性 到 RithmicConnector 连接 字符串 为了匹配基地的 LinkDemand 方法 IConnector Connect S
  • 如何向 Monaco 编辑器添加新的语言语法?

    我添加了我的语言并按照此处的说明进行构建https github com Microsoft monaco languages https github com Microsoft monaco languages npm run prep
  • 选择日期最高的行

    我的表中有一些重复的值 我只想选择那些具有最新 最高日期的值 即 ID Type Name Value Date 1 FRUIT APPLE Imported 2011 03 19 22 08 13 5 FRUIT LEMON Import
  • Promise.all:解析值的顺序

    看着MDN https developer mozilla org en US docs Web JavaScript Reference Global Objects Promise all它看起来像values传递给then Promi
  • C 基本头命令

    我正在尝试为我的编程课从 Linux 重新创建 head 和 tail 命令 我们刚刚开始使用 C 所以我对分配内存和指针的想法很陌生 我想知道为什么这不起作用 include
  • C#:如何将 long 转换为 ulong

    如果我尝试使用 BitConverter 它需要一个字节数组 但我没有 我有一个 Int32 我想将其转换为 UInt32 在 C 中这没有问题 您只需要一个简单的演员阵容即可 由于这样做可能会丢失精度 因此转换是显式的 long x 10
  • 将具有 key=value 对的字符串解析为 JSON

    我的节点应用程序接收以下格式的一系列字符串 a x b y c z 即包含多个空格分隔的字符串key value pairs 将此类字符串转换为以下形式的 JSON 对象的最巧妙方法是什么 a x b y c z 我打赌有一个单行解决方案
  • Spring Boot - 无法从 application.properties 在 xml 中解析属性

    我有一个 Spring Boot 应用程序 My Configuration class使用加载 xml 配置 ImportResource path to xml 其中包含以下行
  • 自动链接:地图如何工作

    我在用TextView 的 android autoLink map 属性转到地图并查找与该文本视图关联的地址 但它的行为很奇怪只找到一些地址 这是我正在尝试的代码
  • 使用 webpack 生成捆绑 TypeScript 定义文件

    我目前正在使用 gulp 来生成我的包的定义文件 如下所示 dtsGenerator default name ngFramework project out Typings raw index d ts 但是 我正在迁移到 webpack