使用 Angular 中的源映射生成生产版本 - CLI

use*_*222 8 javascript node.js typescript angular-cli angular

生产构建后如何保留源映射?

现在,我的命令如下所示:

"build-prod": "ng build --app=release -prod && cp -R lang dist"

我尝试将其更改为:

ng build --app=release --sourceMap=true -prod && cp -R lang dist

但什么都没有改变。

如果我这样做: ng build --sourcemap我得到了源映射,但随后我得到了 index.html 而不是 index.prod.html。

是否可以编辑第一个命令来构建源映射文件?

这是我的tsconfig.json文件:

{
    "compileOnSave": false,
    "compilerOptions": {
        "outDir": "./dist/out-tsc",
        "sourceMap": true,
        "declaration": false,
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "target": "es5",
        "typeRoots": [
            "node_modules/@types"
        ],
        "lib": [
            "es2017",
            "dom"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

Ton*_*Ngo 10

你应该angular.json像这样编辑你的

"configurations": {
    "production": {
        "fileReplacements": [
            {
                "replace": "src/environments/environment.ts",
                "with": "src/environments/environment.prod.ts"
            }
        ],
        "optimization": true,
        "outputHashing": "all",
        "sourceMap": false, // change to true
Run Code Online (Sandbox Code Playgroud)

然后运行

ng build --prod
Run Code Online (Sandbox Code Playgroud)

但我不建议您在生产中打开源映射,因为它会增加包的大小

  • 请注意,源映射通常仅在用户打开开发人员工具时才会下载,因此对于大多数拥有可用源映射的用户来说*不会*影响下载大小:/sf/ask/1669385511/ (2认同)

Muh*_*ssa 5

你可以试试

ng build --prod --source-map=true|false
Run Code Online (Sandbox Code Playgroud)

angular.io/cli/build