我如何获得适用于 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.map
在 my-org-some-lib.js
中,地图文件实际上是在构建的库中生成的。
经过一段时间处理组合库资源后,我终于找到了解决方案:
- 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 ;)
}
- 避免生产中的 sourcemaps 确保(默认情况下应该存在)
"configurations": {
"production" :{
"sourceMap": false
// ...
}
}
@angular-devkit/build-angular
中存在错误,版本 >= 0.801.3 应该可以正常工作
对我有用的是这里 https://angular.io/guide/workspace-config#source-map-configuration
"sourceMap": {
"scripts": true,
"styles": true,
"hidden": false,
"vendor": true
}
我已经使用 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.map
在 my-org-some-lib.js
中,地图文件实际上是在构建的库中生成的。
经过一段时间处理组合库资源后,我终于找到了解决方案:
- in the
angular.json
inprojects.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 ;)
}
- 避免生产中的 sourcemaps 确保(默认情况下应该存在)
"configurations": {
"production" :{
"sourceMap": false
// ...
}
}
@angular-devkit/build-angular
中存在错误,版本 >= 0.801.3 应该可以正常工作
对我有用的是这里 https://angular.io/guide/workspace-config#source-map-configuration
"sourceMap": {
"scripts": true,
"styles": true,
"hidden": false,
"vendor": true
}