包裹服务为 SourceMap 请求和不存在的 url 返回 index.html

sze*_*rte 5 javascript source-maps typescript parceljs

使用parcel 设置的普通香草打字稿开发环境。

我在浏览器(Edge/Chrome)中没有 SourceMap:

DevTools failed to load SourceMap: Could not parse content for http://localhost:1234/index.7cacc1f4.js.map: Unexpected token < in JSON at position 0
Run Code Online (Sandbox Code Playgroud)

页面加载后的包裹服务日志:

$ parcel serve ./src/index.html --log-level verbose
?? Server running at http://localhost:1234
? Built in 3.15s
@parcel/reporter-dev-server: Request: localhost:1234/
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js.map
@parcel/reporter-dev-server: Request: localhost:1234/favicon-32x32.232ca4f5.png
Run Code Online (Sandbox Code Playgroud)

SourceMap 文件在 dist 中:

$ ls dist
__                              favicon-32x32.232ca4f5.png      index.453c97a0.js.map
apple-touch-icon.8e36bc09.png   favicon-32x32.a91f4dac.png      index.7cacc1f4.js
apple-touch-icon.e80caf23.png   index.031565ba.js               index.7cacc1f4.js.map
favicon-16x16.bc10cd1f.png      index.031565ba.js.map           index.html
favicon-16x16.d41cdce3.png      index.453c97a0.js
Run Code Online (Sandbox Code Playgroud)

它似乎parcel serve正在返回索引页而不是 SourceMaps:

$ curl -v localhost:1234/index.7cacc1f4.js.map 
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 1234 (#0)
> GET /index.7cacc1f4.js.map HTTP/1.1
> Host: localhost:1234
> User-Agent: curl/7.64.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Methods: GET, HEAD, PUT, PATCH, POST, DELETE
< Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Content-Type
< Content-Length: 630
< Content-Disposition: inline; filename="index.html"
< Accept-Ranges: bytes
< Last-Modified: Sun, 21 Mar 2021 17:09:09 GMT
< Content-Type: text/html; charset=utf-8
< Date: Sun, 21 Mar 2021 17:13:40 GMT
< Connection: keep-alive
< Keep-Alive: timeout=5
< 
<!DOCTYPE html>

<html lang="en">
  [....]
</html>
* Connection #0 to host localhost left intact
* Closing connection 0
Run Code Online (Sandbox Code Playgroud)

curl上面的包裹日志:

@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js.map
Run Code Online (Sandbox Code Playgroud)

包裹版本: 2.0.0-beta.2

这也很奇怪,包裹服务没有返回 404,只是在找不到页面时重定向到索引?

@parcel/reporter-dev-server: Request: localhost:1234/asfsdfs.x
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js
@parcel/reporter-dev-server: Request: localhost:1234/index.7cacc1f4.js.map
@parcel/reporter-dev-server: Request: localhost:1234/favicon-32x32.232ca4f5.png
@parcel/reporter-dev-server: Request: localhost:1234/__/static/site.webmanifest
Run Code Online (Sandbox Code Playgroud)