在vue的初学者中很多人都认为只需要npm run build 输入完成后就可以放任不管

最后打包后会发现index页面是空白甚至liver server服务开启都是空白

其实你只需要做如下几部配置

1)!!!注意 这里是 我项目的完整列表 

最后一个vue.config.js 是必须添加的如果你项目里没有的话就自己添加一个

 这里是vue.config.js 的配置,里面内容我会放到下方


//打包配置文件
module.exports = {
    assetsDir: 'static',
    parallel: false,
    /*
        下方配置需要注意!
        如果你的项目中引用了静态文件比如图片路径是   ./ 或者../ 
        打包时候需要求改为 ./ 如果没有人用任何非网络路径的就默认 / 就ok了
    */
    publicPath: './', 
   
}

2)在config文件中有一个index.js文件需要配置你的文件路径

找到你自己里面的 build 完整替换这部分就行

 build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

    // Paths
    assetsRoot: path.resolve(__dirname, '../dist'),
    assetsSubDirectory: 'static',
    // 配置项在这里 默认的是 /  咱们CTRL+C CTRL+V 就行
    assetsPublicPath: './',

    /**
     * Source Maps
     */

    productionSourceMap: true,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',

    // Gzip off by default as many popular static hosts such as
    // Surge or Netlify already gzip all static assets for you.
    // Before setting to `true`, make sure to:
    // npm install --save-dev compression-webpack-plugin
    productionGzip: false,
    productionGzipExtensions: ['js', 'css'],

    // Run the build command with an extra argument to
    // View the bundle analyzer report after build finishes:
    // `npm run build --report`
    // Set to `true` or `false` to always turn it on or off
    bundleAnalyzerReport: process.env.npm_config_report
  }

 3)如果你是用了element UI 可能会导致 uI框架的 iCON失效变成方框那么你只需另外配置一个小部分即可

 

function generateLoaders (loader, loaderOptions) {
    const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
 
    if (loader) {
      loaders.push({
        loader: loader + '-loader',
        options: Object.assign({}, loaderOptions, {
          sourceMap: options.sourceMap
        })
      })
    }
 
    // Extract CSS when that option is specified
    // (which is the case during production build)
    if (options.extract) {
      return ExtractTextPlugin.extract({
        use: loaders,
        fallback: 'vue-style-loader',
        publicPath: '../../',// 解决了element UI icon 是方框路径问题
      })
    } else {
      return ['vue-style-loader'].concat(loaders)
    }
  }

然后你就可以 试试打包了!此时打包完成后的 dist下的index是可以直接本地打开的!如果不对的话可能是你的文件没有配置对!第一次写这玩意 大神勿喷!后续会努力写的更好 希望对你有帮助

!!!!!注意 按照上方这样配置打包时

router下的index.js  得是  {mode:'hash' }不能是 {mode: 'history'}

Logo

前往低代码交流专区

更多推荐