如果在Angular中将sourcemap设置为false会发生什么

时间:2019-02-26 06:28:31

标签: html node.js angular typescript angular-cli

我是Angular的新手。我在sourcemap中看到了tsconfig.json,默认情况下是"sourceMap": true。我毫不怀疑,发现this link是有用的。仍然我对此有以下疑问。

我设置了"sourceMap": false,但是在应用程序中找不到任何更改。如果我这样设置的话,实际的变化是什么?

3 个答案:

答案 0 :(得分:6)

应用程序的运行方式将保持不变。

更改将在您的调试体验中进行。

Source maps对于调试代码很有帮助。您使用TypeScript编写代码,然后编译器将代码转换为JavaScript。当您的应用程序在Firefox之类的浏览器中运行时,该浏览器正在运行JavaScript。即使浏览器运行的是JavaScript,如果您在Firefox中打开调试器,调试器也会显示TypeScript源代码,并允许您在其中设置断点。调试器之所以能够这样做,是因为源映射将TypeScript源代码映射到JavaScript运行时代码。这就是源映射的作用:它们将源代码映射到运行时代码,以在运行时启用源代码调试。

答案 1 :(得分:3)

sourceMap设置为false时。输出将在没有源映射文件的情况下构建。否则,您将无法使用ts文件的浏览器进行调试。

答案 2 :(得分:2)

sourceMap仅用于开发经验(调试),通常在生产版本中不需要这些文件,如果您检查angular.json,您会发现它已设置为false

  "configurations": {
    "production": {
      "fileReplacements": [
        {
          "replace": "src/environments/environment.ts",
          "with": "src/environments/environment.prod.ts"
        }
      ],
      "optimization": true,
      "outputHashing": "all",
      "sourceMap": false,  <----
      "extractCss": true,
      "namedChunks": false,
      "aot": true,
      "extractLicenses": true,
      "vendorChunk": false,
      "buildOptimizer": true
    }