We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
source map是将编译、打包、压缩后的代码映射回源代码的过程。打包压缩后的代码不具备良好的可读性,想要调试源码就需要soucre map。
source map
soucre map
map文件只要不打开开发者工具,浏览器是不会加载的。
map
线上环境(生产环境)一般有三种处理方案:
hidden-source-map
nosources-source-map
sourcemap
nginx
.map
避免在生产环境(线上环境)中使用inline-和eval-
inline-
eval-
inline-是将SourceMap内联到原始文件中,而不是创建一个单独的文件。
SourceMap
devtool为source-map的情况下打包后,有一个.map文件存储代码的映射关系:
devtool
source-map
devtool为inline-source-map的情况下,映射关系会一同写到编译后的代码中:
inline-source-map
对比可知inline-会增加bundle体积大小,并降低整体性能
bundle
eval- 会通过eval包裹每个模块打包后代码以及对应生成的SourceMap,因为eval中为字符串形式,所以当源码变动的时候进行字符串处理会提升rebuild的速度。 但同样因为是eval包裹js代码,很容易被XSS攻击,存在很大的安全隐患。所以,eval我们一般只用于开发环境,不会用于打包线上环境的代码。
eval
rebuild
XSS
The text was updated successfully, but these errors were encountered:
No branches or pull requests
source map
是将编译、打包、压缩后的代码映射回源代码的过程。打包压缩后的代码不具备良好的可读性,想要调试源码就需要soucre map
。map
文件只要不打开开发者工具,浏览器是不会加载的。线上环境(生产环境)一般有三种处理方案:
hidden-source-map
:借助第三方错误监控平台 Sentry 使用nosources-source-map
:只会显示具体行数以及查看源代码的错误栈。安全性比sourcemap
高sourcemap
:通过nginx
设置将.map
文件只对白名单开放(公司内网)注意:
避免在生产环境(线上环境)中使用
inline-
和eval-
inline-
inline-
是将SourceMap
内联到原始文件中,而不是创建一个单独的文件。devtool
为source-map
的情况下打包后,有一个.map
文件存储代码的映射关系:devtool
为inline-source-map
的情况下,映射关系会一同写到编译后的代码中:对比可知
inline-
会增加bundle
体积大小,并降低整体性能eval-
eval-
会通过eval
包裹每个模块打包后代码以及对应生成的SourceMap
,因为eval
中为字符串形式,所以当源码变动的时候进行字符串处理会提升rebuild
的速度。但同样因为是
eval
包裹js代码,很容易被XSS
攻击,存在很大的安全隐患。所以,eval
我们一般只用于开发环境,不会用于打包线上环境的代码。参考文献
The text was updated successfully, but these errors were encountered: