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

kmg*_*kmg 4 html node.js typescript angular-cli angular

我是Angular的新手。我看到sourcemaptsconfig.json,默认情况下是"sourceMap": true。我对此几乎没有疑问,并发现此链接很有用。我仍然对此有以下疑问。

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

Sha*_*tin 8

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

更改将取决于您的调试经验。

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


mal*_*awi 6

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
    }
Run Code Online (Sandbox Code Playgroud)