在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
vue项目的打包上线及优化
vue项目的打包
打开终端,切换到项目根目录 输入命令: 会在当前项目的根目录下生成一个dist文件夹,里面就是打包后的文件
项目托管
express创建服务器 var express = require('express') const path = require('path') // 2. 创建服务器 var app = express(); // 托管静态资源 // 也可以将所有静态资源放置到指定的目录下,如public,然后添加以下的配置 app.use(express.static('dist')) app.use('/', express.static(path.join(__dirname, 'dist'))) // 3. 开启服务器并监听端口 app.listen(3001, () => { console.log('http://127.0.0.1:3001') }) 启动服务器
项目的常见优化
生成项目报告文件 npm run build – --report 打开报告页面 1.报告页面中,越大的块说明这个模板占用的体积越大 cdn加速优化
vue.config.js
添加包的排除 module.exports = { configureWebpack: { externals:{ 'vue': 'Vue', 'element-ui': 'ELEMENT', 'quill': 'Quill' } }, } 可以看到,打包后的项目体积显著的减少,但是,问题并没有解决,由于没有这些包,打包后的项目并不能运行 这是因为,现在打包的项目中,已经没有Vue这个包了,所以才会出现错误,我们现在需要使用cdn的方式来提供这些资源 添加cdn的用户自定义 vue.config.js中加入下面代码 let cdn = { css: [ // element-ui css 'https://unpkg.com/element-ui/lib/theme-chalk/index.css',// 样式表 // 富文本框插件样式 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.bubble.css' ], js: [ // vue must at first! 'https://unpkg.com/vue/dist/vue.js', // vuejs // element-ui js 'https://unpkg.com/element-ui/lib/index.js', // elementUI // 富文本框插件 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.js' ] } 通过插件将资源自动的添加到页面中 挂载资源到插件 module.exports = { // 添加打包排除,说明以下配置中的包将来不会打包到项目中 configureWebpack: { externals:{ 'vue': 'Vue', 'element-ui': 'ELEMENT', 'quill': 'Quill' } }, // 将cdn的资源挂载到插件上 chainWebpack (config) { config.plugin('html').tap(args => { args[0].cdn = cdn return args }) } } 在页面中使用插件添加指定的cdn资源,在项目中的public中index中加入下面代码(项目打包前的index文件) 添加css引入(head结构中) <% for(var css of htmlWebpackPlugin.options.cdn.css) { %> <link rel="stylesheet" href="<%=css%>" /> <% } %> 添加js引入(body结构中) <% for(var js of htmlWebpackPlugin.options.cdn.js) { %> <script src="<%=js%>"></script> <% } %> 重新打包,OK 设置只有产品阶段才使用cdn
const isProd = process.env.NODE_ENV === 'production' // 是否生产环境 let externals = { 'vue': 'Vue', 'element-ui': 'ELEMENT', 'quill': 'Quill' } let cdn = { css: [ // element-ui css 'https://unpkg.com/element-ui/lib/theme-chalk/index.css',// 样式表 // 富文本框插件样式 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.bubble.css' ], js: [ // vue must at first! 'https://unpkg.com/vue/dist/vue.js', // vuejs // element-ui js 'https://unpkg.com/element-ui/lib/index.js', // elementUI // 富文本框插件 'https://cdn.bootcdn.net/ajax/libs/quill/2.0.0-dev.4/quill.js' ] } cdn = isProd ? cdn : { css: [], js: [] } externals = isProd ? externals : {} module.exports = { // 添加打包排除,说明以下配置中的包将来不会打包到项目中 configureWebpack: { externals }, // chainWebpack (config) { config.plugin('html').tap(args => { args[0].cdn = cdn return args }) } } 到此这篇关于vue项目打包以及优化的实现步骤的文章就介绍到这了,更多相关vue项目打包以及优化内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论