【问题标题】:Restore Angular 4 project from dist folder从 dist 文件夹恢复 Angular 4 项目
【发布时间】:2018-06-04 10:02:46
【问题描述】:

所以我不小心删除了我的 Angular 4 项目,但我仍然有包含所有捆绑包和代码的 dist 文件夹。那么有什么方法可以恢复所有项目布局,以便我可以继续在我的编辑器中编码,还是永远消失了? 谢谢。

【问题讨论】:

  • ctrl + z?回收站?我的想法是,这是不可能的。拿别人的 Angular 网站来说太容易了。
  • 我觉得运气不好
  • 不幸的是,我用 GIT 以某种方式删除了它,所以我的 bin 中没有它们。几天前,我知道我可以恢复系统,但这不是一个选项。
  • 使用任何软件来恢复已删除的文件。

标签: angular


【解决方案1】:

没有。

如果您没有项目文件,则无法对 Angular 应用程序进行逆向工程以获取源代码。如果与 Angular 的视图引擎(如果您一直在使用最佳实践进行开发,则不应该如此)并尝试恢复它,您可以查看已编译的代码以获取一些业务逻辑。

这就像试图从只有 5 个返回到 2 + 3。你不知道它是否是 3 + 2、1 + 4、4 + 1。Angular 编译你的应用程序,并且没有 1-1 映射。 特别是当你考虑到你也一直在使用 TypeScript 时。 Angular 的构建输出了两个编译器和一个与原始文件不同的捆绑器。不可逆转。

下面是编译的详细分类。

  1. Angular 编译器正在将您用 TypeScript 编写的 Angular 代码编译为不同的 TypeScript 代码。这个过程在理论上可能是可逆的,也可能是不可逆的,这取决于 Angular 编译器的工作方式(我无权谈论这个)。
  2. 然后 TypeScript 被编译成 JavaScript。这是不可逆的
  3. 捆绑器(例如 Webpack、Rollup、SystemJS 或 Parcel)会干扰您的代码,包括不知道有多少插件会干扰您的代码。它们中的大多数是不可逆的。实际捆绑可能是可逆的,具体取决于实施。
  4. 生成的包(或单个包)被缩小。这种情况的不可逆性还取决于缩小的程度。例如,如果您使用具有高级设置的 Google 的 Closure Compiler,则根据定义,取回原始代码是不可逆转的。

【讨论】:

  • 是的,我就是这么想的,谢谢你的回答!
  • @Eliseo 的建议是最简单的步骤,不会带您到任何地方。链如下:(1) 源代码 (2) Angular 编译器的输出 (3) TypeScript 编译器的输出 (4) webpack 等捆绑器的输出 (5) minifier 的输出。去混淆让你从 5 回到 4,但就是这样。
【解决方案2】:

在 Dist 文件夹中部署应用代码,然后使用 Google Chrome 开发者工具 (F12)。在调试器选项卡下,查看 webpack -> src 它将显示所有打字稿文件。您可以复制并粘贴提供的代码。

【讨论】:

    猜你喜欢
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多