代码之家  ›  专栏  ›  技术社区  ›  agm1984

如何让源地图在Angular 4和Laravel 5.6中工作(.map文件在构建后丢失)

  •  2
  • agm1984  · 技术社区  · 6 年前

    我运行一个shell脚本,它基本上将所有内容编译到项目的 ./public nginx 从那里提供应用程序。

    以下是构建一切的脚本:

    /编译js。嘘

    rm -rf ./public/*.{js,css,svg,woff2,ttf,woff,eot,map,json,html,txt}* ./public/fonts ./public/images ./angular-app/dist/
    cd ./angular-app/
    yarn install
    yarn run build:dev
    rm -f ./dist/*.{txt,map} #{txt,map}
    cd ../
    cp -r ./angular-app/dist/* ./public/
    
    cssTemplate=./resources/views/angular/angular-css.blade.php
    jsTemplate=./resources/views/angular/angular-js.blade.php
    
    beginJs='<script type="text/javascript" src="'
    endJs='"></script>'
    
    beginInlineJs='<script type="text/javascript">'
    endInlineJs='</script>'
    
    beginStyle='<link rel="stylesheet" href="'
    endStyle='"/>'
    
    truncate -s 0 "$jsTemplate"
    truncate -s 0 "$cssTemplate"
    
    src="$(cat ./public/inlin*.bundle.js)"
    echo "$beginInlineJs$src$endInlineJs" >> "$jsTemplate"
    
    src="$(find ./public/ -name 'script*.bundle.js' -type f -exec basename {} \;)"
    echo "$beginJs$src$endJs" >> "$jsTemplate"
    
    src="$(cat ./public/sw-registe*.bundle.js)"
    echo "$beginInlineJs$src$endInlineJs" >> "$jsTemplate"
    
    src="$(find ./public/ -name 'polyfill*.bundle.js' -type f -exec basename {} \;)"
    echo "$beginJs$src$endJs" >> "$jsTemplate"
    
    src="$(find ./public/ -name 'vendo*.bundle.js' -type f -exec basename {} \;)"
    echo "$beginJs$src$endJs" >> "$jsTemplate"
    
    src="$(find ./public/ -name 'mai*.bundle.js' -type f -exec basename {} \;)"
    echo "$beginJs$src$endJs" >> "$jsTemplate"
    
    src="$(find ./public/ -name 'style*.bundle.css' -type f -exec basename {} \;)"
    echo "$beginStyle$src$endStyle" >> "$cssTemplate"
    

    以下是脚本:

    "build": "ng build --env=prod --prod --aot --output-path ./dist",
    "build:dev": "ng build --sourcemap=true --extract-css --env=dev --output-path ./dist",
    

    我今天刚把shell脚本改成 yarn run build:dev

    DevTools failed to parse SourceMap: https://1.bundle.js.map
    DevTools failed to parse SourceMap: https://2.bundle.js.map
    DevTools failed to parse SourceMap: https://3.chunk.js.map
    

    我知道没有 .map 文件夹,所以这可能就是我看到这个的原因。

    • 我的 tsconfig.json "sourceMap": true,

    • webpack://

    1 回复  |  直到 6 年前
        1
  •  1
  •   agm1984    6 年前

    找到了答案。原因如图所示 ./compile-js.sh 文件

    这就是罪魁祸首:

    rm -f ./dist/*.{txt,map} #{txt,map}
    

    它创建地图文件,然后删除它们,然后将所有内容复制到 ./public

    将其更改为此并进行了修复:

    rm -f ./dist/*.{txt} #{txt}
    

    我现在也在使用这个开发脚本:

    "build:dev": "ng build --source-map --aot --extract-css --env=dev --output-path ./dist",