欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解vue-cli 构建Vue项目遇到的坑

程序员文章站 2022-09-08 22:12:46
前言 使用vue做管理系统和webapp做过三四个项目了,期间遇到很多坑,再次一一列举,并给出解决方案,方便日后更方便使用,也为他人提供一些解决方案。 问题表象和解决方...

前言

使用vue做管理系统和webapp做过三四个项目了,期间遇到很多坑,再次一一列举,并给出解决方案,方便日后更方便使用,也为他人提供一些解决方案。

问题表象和解决方案

1、编译后js、css等相对路径和绝对路径。

config/inde.js文件
 build: {
  env: require('./prod.env'),
  index: path.resolve(__dirname, '../dist/index.html'),
  assetsroot: path.resolve(__dirname, '../dist'),
  assetssubdirectory: 'static',
  assetspublicpath: './', // "./"表示相对路径 编译结果 <link href=./static/css/app.518fd3471fd03bfce5524de6e934771c.css rel=stylesheet>
  productionsourcemap: true,
  // 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
 },

2、css中图片相对路径编译后,路径不对。

//同常路径表现为 ./static/img/static/img/*.jpg (定义为imgurl)
解决方案 修改build/untils.js
//替换相应代码
if (options.extract) {
   return extracttextplugin.extract({
    use: loaders,
    publicpath: '../../', //注意: 此处根据路径, 自动更改 ,(imgurl='static/img/*.jpg')
    fallback: 'vue-style-loader'
   })
  } else {
   return ['vue-style-loader'].concat(loaders)
  }

3、使用代理,解决跨域请求。

vue-cli已经集成 http-proxy-middleware插件

github:

proxytable: {
   '/dianmi_service': {
    target: 'https://****.com.cn',
    changeorigin: true
   },
   '/brand_service': {
    target: 'https://*****.com.cn',
    changeorigin: true
   }
  },

其中 target的值一定不可以包含工程名,否则可能会出现服务器session问题

4、用vue做页面,利用phonegap编译android app时,兼容问题。

cordova android 4.0 以下的默认webview,不支持es6,会导致一些列问题。

好在,cordova android允许我们自定义自己的webview引擎。那么我们就想到了 腾讯浏览服务x5内核。

然而有大神基于此内核编写了cordova 插件

githup:

使用此插件很好的解决 低版本安卓不支持vue。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。