【问题标题】:Sublime: How to remove .js.map/.js files of .ts files in sublime textSublime:如何在 sublime 文本中删除 .ts 文件的 .js.map/.js 文件
【发布时间】:2017-03-13 23:03:10
【问题描述】:

我正在使用 Angular 2 和 typescript,但我不确定我点击了什么,但我的所有 .ts 文件都创建了额外的 .js.map/.js 文件。有谁知道如何删除这些文件?

当我打开文件夹时,它似乎正在尝试为文件编制索引...我不确定是什么原因造成的(见下图)。

【问题讨论】:

    标签: typescript sublimetext2


    【解决方案1】:

    Ctrl + b.ts 文件编译成各自的.js.js.map 文件。

    如果您使用 git 进行版本控制,并且没有添加任何其他未跟踪的文件,则可以运行:

    git clean -fd 将删除所有未跟踪的文件

    【讨论】:

    • 补充一下,万一你创建了不想删除的新文件,运行git clean -fd,那么先用git add ...一个一个添加,再@987654327 @,然后是git reset
    【解决方案2】:

    这些是 Typescript 编译器生成的文件。如果要隐藏它们,可以将属性添加到用户配置"file_exclude_patterns",其值是要排除的模式数组。您可以"*.js""*.map.js" 排除这些文件扩展名。

    另见answer

    【讨论】:

    • 谢谢!有没有办法撤消我可能点击的内容?我不想排除所有 *.js 文件,因为文件夹中的某些文件只是 *.js 文件。
    • 不,这是它应该做的。 TS 编译器将 TS 文件转译为 JS 文件(如果您在 tsconfig.json 文件中启用了该选项,则还包括相关的源映射)
    • 我明白了!现在,我在 sublime 中打开文件文件夹时遇到问题。它不会打开文件夹...但会运行一些内容...“添加的文件夹...[某些路径]”。如果我尝试在 sublime 中打开单个文件,它将打开。你知道可能是什么问题吗?
    • 不,我实际上并不熟悉 Sublime,从未使用过它,所以我不确定它在做什么,抱歉。
    【解决方案3】:

    您可以将cd 放入项目的src 文件夹并安全运行

    find . -name "*.js*" -type f

    它将找到您的所有 .js.js.map 文件。浏览此列表并仔细检查以确保您没有删除任何重要内容。

    当您对删除所有这些文件感到满意后,运行

    find . -name "*.js*" -type f -delete

    这实际上会删除文件。

    【讨论】:

    • 然后我添加了一个用户键绑定到 Sublime 以使用 link 覆盖“ctrl + b”。
    【解决方案4】:

    您可能按下了“ctrl + b”,它会编译 .ts 以显示代码中的错误。

    所以解决方案是...手动删除它们,永远不要再按“ctrl + b” D =

    或更改该简码。

    【讨论】:

      【解决方案5】:

      这只是发生在我身上,因为不小心点击了 ctrl + b 使 sublime text 3 上的 typescript 插件将所有 ts 编译为 js。要删除所有不必要的 js 和映射文件,请在您的 src 文件夹中尝试此操作(使用 cmd)
      Windows

      del /s *.js
      
      del /s *.map
      

      苹果机

      find . -name '*.js' -delete
      
      find . -name '*.map' -delete
      

      【讨论】:

        【解决方案6】:

        要删除所有与.ts 相关联的.js.js.map 文件,您可以使用python 脚本:

        #!/usr/bin/python3
        
        # Requires at least Python 3.5+
        
        import os
        from pathlib import Path
        
        def clean_ts( ts_file_path ):
            [base_name, ext] = os.path.splitext(ts_file_path)
            if ext != ".ts":
                return
            js_name = base_name + ".js"
            jsmap_name = base_name + ".js.map"
            if os.path.exists(js_name):
                os.remove(js_name)
                print("Delete:\n\t{}".format(js_name))
            if os.path.exists(jsmap_name):
                os.remove(jsmap_name)
                print("Delete:\n\t{}".format(jsmap_name))
        
        pathlist = Path(os.getcwd()).glob('**/*.ts')
        for path in pathlist:
            # because path is object not string
            if "node_modules" in str(path):
                continue
            clean_ts(str(path))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-05-26
          • 1970-01-01
          • 2015-09-01
          • 1970-01-01
          • 2016-07-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多