我如何获得适用于 npm 链接 angular 库的源映射

how do I get source map working for npm linked angular library

我已经使用 ng g library @my-org/some-lib 创建了 angular 7 库,并通过 npm link 在单独的 angular 应用程序中使用它,以便能够同时开发应用程序和库。

现在我发现在开发工具中,我将库视为一个单独的 my-org-some-lib 捆绑的 js 文件,该文件从 vendor.js.map 中解析出来,但它没有进一步解析到存在的 sourceMappingURL=my-org-some-lib.js.mapmy-org-some-lib.js 中,地图文件实际上是在构建的库中生成的。

经过一段时间处理组合库资源后,我终于找到了解决方案:

  1. in the angular.json in projects.app.architect.build.options path there need to include
"options": {
  "sourceMap": true,
  "vendorSourceMap": true,
  "preserveSymlinks": true, // <-- bonus - to use npm link'ed libraries
  // ...
  // note that json format does not allows comments ;)
}
  1. 避免生产中的 sourcemaps 确保(默认情况下应该存在)
"configurations": {
  "production" :{
    "sourceMap": false
    // ...
  }
}
  1. @angular-devkit/build-angular 中存在错误,版本 >= 0.801.3 应该可以正常工作

以上方案取自https://github.com/angular/angular-cli/issues/15531

对我有用的是这里 https://angular.io/guide/workspace-config#source-map-configuration

"sourceMap": {
  "scripts": true,
  "styles": true,
  "hidden": false,
  "vendor": true
}