打包常见问题
白屏
  • 1、在 config/index.js 中修改路径
build: {
    index: path.resolve(__dirname, '../dist/index.html'),
    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: './', // 修改这里 之前是'/'
  }
  • 2、使用 bable-polyfill 解决旧版手机白屏或者pc浏览器兼容问题
npm install --save babel-polyfill

// main.js
import 'babel-polyfill' // 或者require('babel-polyfill')
字体文件加载异常
  • 在 build/utils.js 加上 publicPath:'../../'
if (options.extract) {
    return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        publicPath: '../../'
    })
} else {
    return ['vue-style-loader'].concat(loaders)
}
路由在history模式下存在多级路由时,页面路由跳转是ok的,但当二级以上路由时,浏览器直接刷新页面会空白
  • 二级以上路由刷新白屏(控制台报 "<" 错误)
  • 在 config/index.js 加上 assetsPublicPath: '/',
build: {
    index: path.resolve(__dirname, '../dist/index.html'),
    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    ...
    }
  • a.如果是vue老项目,你找配置文件中的publicPath这个属性,会发现是publicPath:""空字符串,所有的静态资源把publicPath路径组合起来相当于“./app.js”,这时我们需要把这里改成publicPath:"/",所有的静态资源把publicPath路径组合起来相当于“/app.js”,从根路径开始,这样无论你在几级路由,都是从根路径加载

  • b.如果你是新的vue项目,你会发现没有配置publicPath的地方,因为新的vue项目publicPath是获取baseUrl字段的值,所以在这个路径下node_modules/@vue/cli-service/lib/options.js把baseUrl:""改成baseUrl:"/"

千千学习、练习用
JSRUN前端笔记, 是针对前端工程师开放的一个笔记分享平台,是前端工程师记录重点、分享经验的一个笔记本。JSRUN前端采用的 MarkDown 语法 (极客专用语法), 这里属于IT工程师。