Vue前端进行打包的具体操作过程是什么
Admin 2022-07-07 群英技术资讯 706 次浏览
package.json
中添加配置
npm run build
发布到线上的代码 不便于调试
命令:
"build:dev": "vue-cli-service build --mode dev", "build:prod": "vue-cli-service build --mode prod"
不可直接双击dist/index.html
需要放在http容器中运行:
serve tomcat nginx iis
本次使用
serve
下载serve: npm i -g serve
报错:
Error: EPERM: operation not permitted, mkdir ‘C:\Program Files\nodejs\node global\node_modules.staging'
解决: 用户—>个人用户—>删除.npmrc
文件
启动打包后的目录: serve dist
添加环境变量:
.env.dev
文件(与package.json中mode对应).env.prod
文件(与package.json中mode对应)在需要动态指定变量的位置使用process.env.NODE_ENV
等
// .env.dev ##开发环境 NODE_ENV=development ##变量以VUE_APP_开头 VUE_APP_URL=http://www.dev.com // .env.prod ##生产环境 NODE_ENV=production VUE_APP_URL=http://www.prod.com
vuecli
是基于webpack
vue.config.js
npm run build:prod
少了注释、空行、压缩等
代码细分:
vue elementui axios
等移出三方包: 使用三方提供cdn
(免费、收费)
步骤:
cdn
资源,添加到public/index.html
import
导入的删除vue.config.js
配置排除三方包module.exports = { // 打开文件访问的相对路径 独立项目 通过项目根目录访问 publicPath: './', // 开发时需要 线上不需要 map-->提供代码映射 方便调试代码 productionSourceMap: process.env.NODE_ENV == 'development' ? true: false, // 配置webpack configureWebpack: config =>{ // config---vuecli默认配置 Object.assign(config, { // 排除依赖包 externals: { vue: 'Vue' } }) }, }
下载 npm i -D compression-webpack-plugin
ERROR TypeError: Cannot read property ‘tapPromise' of undefined
TypeError: Cannot read property ‘tapPromise' of undefined
错误原因: 脚手架配置gzip打包不支持这个版本
解决: 使用npm install compression-webpack-plugin@6.1.1 --save-dev
在vue.config.js配置
打包会生成gz结尾的文件:
let CompressionWebpackPlugin = require('compression-webpack-plugin') configureWebpack: config =>{ let plugins = [ new CompressionWebpackPlugin({ // 压缩方式 algorithm: 'gzip', // 匹配压缩文件 test: /\.js$|\.css$/, // 对于大于10k压缩 threshold: 10240 }) ] if(process.env.NODE_ENV == 'production') { config.mode = "production" config.plugins = [...config.plugins, ...plugins] } else { config.mode = 'development' } },
浏览器查看:
Accept-Encoding: gzip, deflate, br
Content-Encoding: gzip
打包部署模式:
hash: 打包后dist直接在http容器中运行 线上一致
history: 打包后脚手架刷新不会404 线上会404
解决方案:需要前端代码与后端一起部署 由后端负责跳转前端
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录前言一、forEach(),用于遍历数组,无返回值二、map(),用于遍历数组,返回处理之后的新数组三、every(),用于判断数组中的每一项元素是否都满足条件,返回一个布尔值四、some(),用于判断数组中的是否存在满足条件的元素,返回一个布尔值五、filter(),用于筛选数组中满足条件的元素,返回一个筛选后的
这篇文章主要介绍了JavaScript中isPrototypeOf函数,isPrototypeOf() 是 Object函数(类)的下的一个方法,用于判断当前对象是否为另外一个对象的原型,如果是就返回 true,否则就返回 false,下面来看看详细内容,需要的朋友可以参考一下
目录实现源码大概思路文字内容宽度细节处理实现源码// 常见一个辅助元素const fakeEle = document.createElement(div);// 隐藏辅助元素fakeEle.style.position = absolute;fakeEle.style.left = -9999px;fakeEle.s
React是用于构建用户界面的JavaScript库, 起源于Facebook的内部项目,因为该公司对市场上所有 JavaScript MVC框架,都不满意,就决定自己写一套,用来架设Instagram的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
1.方法介绍2.apply、call和bind方法的实现2.1.apply的实现2.2.call的实现2.3.bind的实现总结1.方法介绍apply、call和bind都是系统提供给我们的内置方法,每个函数都可以
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008