一直以来,都认为 Bundle 有可能会不正确的压缩,而导致脚本出错,所以一直将这个功能处于禁用状态。
突然发现,其实只是自己使用的不对。。。
目前发现 Bundle 会导致的错误分两种情况:
1、路径错误
一方面是一些 css 文件中的定义,会使用相对路径引用 图片、字体 等文件,如果在 Bundle 中重新定义的路径不符合 css 中已定义的相对路径,那么就会导致相关的资源无法找到,页面中的一些样式也就不能正确的加载了。
另一方面是有一些 js 文件中,会使用代码加载另一些 js 或者 css 文件,“另一些 js 或者 css”它们的路径如果是依赖于当前 js 文件的 url ,那么还是因为 Bundle 中的重新定义,导致代码不能正确识别当前的路径,导致加载出错。
这个问题说好解决也好解决,说别扭也挺别扭的。
那就是在定义 Bundle 的时候,不要再重新定义路径,就按原 js 或者 css 文件的路径来定义 Bundle ,这样在客户端浏览器看起来就是一样的了。
2、真的是压缩出错了
刚发现不对的时候,我还以为压缩不会导致脚本出错呢,结果后来发现,还是有这个可能的,不过几率比较低。
遇到这种情况,我们可以提前将 js 或者 css 文件压缩好(也就是制作带 min 后缀的版本),然后让 Bundle 自动识别就好了。