javascript - 在已发布的 node_module 库中存储或不存储原始 Typescript 代码?

标签 javascript typescript

当我在 Typescript 中编写 node_module 并发布它时,我只能发布转译(混淆代码)也就是 /dist 文件夹。但我也可以发布原始代码(又名 /src/lib 文件夹)。

  • 如果我只发布经过混淆的代码 - 库会变得更薄,它更像是一个黑匣子
  • 如果我发布经过混淆处理的原始代码 - 它更大并且可以推理此代码(调试、研究、理解它、查看评论等)。

会有什么比较经典的做法呢?我见过一些带有原始代码和没有原始代码的模块。

有相关标准吗?带有原始 Typescript 代码的 node_module 是否更少生产就绪

谢谢

最佳答案

您不应将预编译代码包含到模块中,因为它没有任何好处。

  • 如果有人想使用你的产品,他们想要它的小型/快速版本,而不是源代码,他们必须自己编译
  • 如果他们想和你一起工作,他们会去 git 存储库,在那里他们可以看到原始来源

我建议您将这些选项添加到您的 tsconfig 文件中:

{
  "compilerOptions": {
     "outDir": "./dist",          /* Redirect output structure to the directory. */
     "declaration": true,         /* Generates corresponding '.d.ts' file. */
  }
}

outDir 设置将指定所有生成的源代码将在根目录的特定文件夹中编译。这样,您生成的代码可以仅位于一个位置。

declaration 设置将生成所谓的“源映射”文件。有了它,您可以发布编译后的代码,但仍然为 typescript 用户提供类型。

在您的 Git Repo 中,我只会保留原始源文件并将生成的源文件夹添加到您的 .gitignore。在这种情况下,将 dist 文件夹添加到忽略文件。

关于javascript - 在已发布的 node_module 库中存储或不存储原始 Typescript 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58375857/

相关文章:

javascript - JQuery 中的 $.ajax 调用相同的 VM

javascript - 我如何与空变量进行比较?

Angular mat-tooltip 调用函数

angular - 响应式(Reactive)表单 MinLength 验证未显示错误

reactjs - React Functional 组件中的 TypeScript 检查

javascript - 与在另一个窗口中打开的组件交互

javascript - JQuery ajax 成功时未捕获 TypeError

javascript - 如何在 Angular 捕获 block 中传递参数

javascript - 在 JSON 字符串中分隔 PHP 变量

Angular 12 child 访问模板占位符