小记 vue 打包(build)需要注意的一些事

记录 vue 项目打包后的一些事情

首先声明项目都是由 vue-cli 生成;

vue 项目从 dev 切换到 prod 时有很多地方需要注意;

  1. 首先是大家最需要注意的 ajax 切换环节
    以前一开始用 Vue 的时候我是在 build 之后,手动修改 ajax 的请求前缀
    比如现在我使用的 axios,

    axios.defaults.baseURL = 'api' 

    但是打包的时候一般都要改动 url,直到我后来知道了 process.env 这个对象,
    使用他可以获取当前的环境(后续还会提到,如何修改这个对象)
    之后就可以轻松的修改 ajax 的基础路径了:

    axios.defaults.baseURL = process.env.NODE_ENV === 'development' ? 'api' : ''

    使用该方法能够无需在打包时修改路径,更好地配合 webpack 的 proxyTable;

  2. 与 1 类似的 Vue.config.devtools 同样地使用 process 来解决这个问题,
    Vue.config.devtools = process.env.NODE_ENV === 'development'

    该属性是是否能够打开 vue 的 devTools;

    某个小有名气的网站,vue 上线的时候,还是 dev 环境,大家引以为戒吧

  3. sources里的 webpack://

    大家在运行程序的时候可以打开 chrome 的 sources 点击 webpack:// 可以发现这个对象里,有所有在运行的组件,资源的源码;
    这个是为了在 debug 的时候调试,然而在 build 之后这个仍然会存在与 sources 中留下很大的隐患;

    而解决这个的方法就是在 /config/index.js 文件下 build 对象中的productionSourceMap改为:

    productionSourceMap:false

    在 build 之前需要检查一下该属性;

  4. build 之后需要相对路径的引用:

    也许大家都知道了,在一般项目 build 之后都会生成一个 index.htm 文件和 一个 static 文件夹,而 static 这个文件夹需要被放置在根目录下,
    index.html 会在决定路径下引用该文件
    如果需要添加模块的话,只需要在 /config/index.js 文件下的 build 对象下,修改 assetsSubDirectory 属性为:

    assetsSubDirectory: 'static/[模块名]'

    很多人引用图片, css 时也都是在 static 文件夹里面引用的,所以绝对引用也没有太多的问题;
    回到正题,如果图片,css 都是在 assets文件里面, build 之后的文件需要相对路径的引用,这个情况也是比较多的:
    assetsSubDirectory这个属性可以像我上面说的那样,再修改 assetsPublicPath‘./‘

    如果还有终极的引用需求,比如我碰到的这个:
    index.html 放置在根目录的模块文件夹下, static 需要放置在根目录的公共static下的模块文件夹下,
    这里需要改的话会比较麻烦,不过我估计没什么人会和我一样碰到这样的要求,
    我就简单讲下,先是修改 /build/webpack.base.conf.js里图片的引用方式,再修改 /build/utils.js里的 assetsPath 函数,使其碰到图片的引用时,添加对应的路径即可;

  5. 添加自定义的全局变量:

    /build/webpack.dev.conf.js 文件下找到 plugins 里的 DefinePlugin 如下,添加测试:

    new webpack.DefinePlugin({
        'process.env': require('../config/dev.env'),
        'myTest':true
    })

    重新启动项目,在 main.js 里面打印该属性:

    console.log(myTest) // true

    可以发现 console 里输出了该属性的值 true,同样地在 /build/webpack.prod.conf.js 文件下也可以添加全局变量,
    可以通过改方法来替换本文中 1 里的功能,可以直接改变全局变量,而不是用当前环境来判断;

基本就这样了,可能还有不完善的地方,如果我发现后续还会再加上;

原文地址:https://www.cnblogs.com/Grewer/p/8847636.html

时间: 2024-11-09 04:30:54

小记 vue 打包(build)需要注意的一些事的相关文章

Vue打包后出现一些map文件

Vue打包后出现一些map文件的解决办法: 问题: 可能很多人在做vue项目打包,打包之后js中,会自动生成一些map文件,那我们怎么把它去掉不要呢? 1,运行  cnpm run build  开始打包 2,会在项目目录下自动创建dist目录,打包好的文件都在其中 解决办法:     去src/config/index.js中改一个参数: productionSourceMap:false 把这个改为false.不然在最终打包的文件中会出现一些map文件,map文件的作用在于:项目打包后,代码

【Vue中的坑】Vue打包上传线上报Uncaught SyntaxError: Unexpected token <

今天在vue打包上传线上后,报一下错误,一下就懵了,这可咋整啊,一如既往的想都没想就开始复制错误,上网开搜 Uncaught SyntaxError: Unexpected token < Uncaught SyntaxError: Unexpected token < Uncaught SyntaxError: Unexpected token < 网上搜的大致有几种 1.因为vue在打包上传的时候不会编译es6,需要安装babel来将es6转成es5 . 2.在经过build/web

vue打包后显示空白正确处理方法

在项目中很多时候需要用到vue打包成html不需要放在服务器上就能浏览.根据官网打包出来的html直接打开是显示空白. 正确的方法步骤是 1.找到配置文件 修改 这样打包处理可以打开但是页面样式会找不到 2.修改 找到对应的位置加上publicPath: '../../' 然后就成功了! 转载:http://www.wei86.cn/article/1/cid/3.html

Vue通过build打包后 打开index.html页面是空白的

最近在build打包vue项目遇到了几个问题,如下: 1.npm run build打包项目之后,我们通常是把dist文件里面被压缩后的static文件跟index.html提交到服务器,但最近发现直接打开index.html页面是空白的,还会报几个错,找不到页面路径. 原因:找到config文件下index.js,全局搜索assetsPublicPath,结果是 assetsPublicPath:' / ' 默认为根目录,而index.html和static是在同一级目录下,因此,解决方法就是

VUE生产环境打包build

1.进入到项目根目录执行 npm run build 此时会自动打包在dist目录下 2.安装服务 npm  install -g serve 3.启动 serve dist 总结: 以上就是生产环境打包的过程. npm run dev是开发环境, npm run build是生产环境 原文地址:https://www.cnblogs.com/ll15888/p/11219930.html

vue打包之后生成一个配置文件修改接口

前言: 我们的vue代码打包上传到服务器之后, 要是数据接口 以后换了域名什么的,是不是需要重新去vue文件里修改接口. 能不能生成一个配置文件,里面可以配置域名或其它什么字段之类的,这样以后换了域名,只需打开记事本 修改一下域名即可. 教程: 第一步:安装generate-asset-webpack-plugin插件 npm install --save-dev generate-asset-webpack-plugin 第二步:配置webpack.prod.conf.js文件 //让打包的时

vue打包后出现静态资源|(图片,json数据)找不到路径

最近在学习Vue是如何编写项目的,在踩了许多坑后,终于要到了最后一步npm run build了,很开心的等待奇迹,然后打包后出现了找不到图片路径的问题. 解决办法:1.将图片或者json数据文件夹放到static的文件夹中,这样打包后webpack会自动打包 2.在build的文件夹下找到utils.js的文件,修改打包后静态资源的路径,添加 publicPath: '../../' 原文地址:https://www.cnblogs.com/klkitty/p/9099472.html

vue打包后出现&quot;Failed to load resource: net::ERR_FILE_NOT_FOUND&quot;错误

创建vue脚手架搭建项目之后,用npm run build经行打包,运行index.html后出现异常: 打开dist/index.html, 诸如这些的,引入是有问题的, 这边的全部是绝对路径,而本应该是相对路径. 解决办法: 打开config/index.js文件,将build->assetsPublicPath改为"./",即可,就是前面加个点. 原文地址:https://www.cnblogs.com/chenmz1995/p/9996760.html

vue打包后,轮播图的动画内容位置显示不正确,且动画失效

解决方法: 1.在vue项目中找到build文件夹下的vue-loader.conf.js,将extract:isProduction  改为extract:false 此步骤打包后解决了动画图片位置错误的问题 2.package.json配置文件里面对浏览器的版本做了css的前缀处理 此步骤解决了动画失效问题 "browserslist": [ "> 1%", "last 2 versions", "not ie <= 8