入职一周后,上一个前端就离职了(超级坑爹的),留下了一个比较棘手的问题,就是基于vue-cli的项目打包超级慢,我接手项目的时候,打包需要45min(上个离职者也不知道原因),经过3个月之后,随着项目的不断迭代,打包的时间飙升到了2个半小时.为了解决这个问题,以前没有做过这方面的优化,在结合网上的一些优化博客,就开启了以下的优化之路. 一.怀疑vue-cli打包配置文件被修改过(不行) 基于此点的怀疑,使用vue-cli重新搭建环境. 步骤一:vue init webpack 项目名称. 步骤二…
前面的话 不论是官网教程,还是官方DEMO,都是从0开始的服务端渲染配置.对于现有项目的服务器端渲染SSR改造,特别是基于vue cli生成的项目,没有特别提及.本文就小火柴的前端小站这个前台项目进行SSR改造 效果 下面是经过SSR改造后的前端小站xiaohuochai.cc的网站效果,github源码地址 概述 [定义] 服务器渲染的Vue应用程序被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行 [优点] 与传统SPA相比,服务器…
VUE SEO方案二 - SSR服务端渲染 在上一章中,我们分享了预渲染的方案来解决SEO问题,个人还是很中意此方案的,既简单又能解决大部分问题.但是也有着一定的缺陷,所以我们继续来看下一个方案--服务端渲染. 1.概述 官方文档 服务端渲染的配置相比预渲染就复杂多了,要做到同构,还要保证服务端和客服端的组件状态一致,我们需要对整个项目进行改造.大部分的内容官方文档中都说明的比较清楚,这里就不重复讲述了,需要各位花费一些时间照着文档一步步改造项目. 本人一开始也是这样照着文档做的,但是改造到最后…
vue cli 3 打包命令 npm run build,这种情况下的打包可以通过设置 vue.config.js里面的 productionSourceMap: false. 如果是自己设置的打包环境,可以将每一个环境的NODE_ENV设置成 'production' 模式.然后你的包就会很小了…
前提条件: 安装node.js. 国内的开发者最好先配置淘宝镜像. 之后用cnpm来代替npm命令. 项目创建过程: 打开cmd,输入命令进入目标工作空间,以本机项目为例: cd /d d: cd D:\workplace 输入全局安装vuecli的命令:cnpm install -g @vue/cli 输入检查vue版本的命令:vue --version 如果版本为3.0+,则继续. 输入创建项目的命令:vue create vue-sell-cube 会看到 ? Your connectio…
1.检测node的版本号 注意:1.Vue CLI需要Node.js的版本 8.9+(推荐8.11.0+) 所以在安装Vue CLI之前先看下node的版本 node -v 2.安装@vue/cli npm install -g @vue/cli 安装之后,可以用如下命令验证它是否安装成功(版本为3.x) vue --version 3.创建项目  eg:项目名称为hcs vue create hcs 提示选取一个 preset ==> a.选默认的包含了基本的 Babel + ESLint 设…
前面的话 本文将详细介绍从webpack3到webpack4的升级过程 概述 相比于webpack3,webpack4可以零配置运行,打包速度比之前提高了90%,可以直接到ES6的代码进行无用代码剔除,新增的optimization使用简单 在未来,CSS.HTMl和文件都会成为原生模块 [0配置] webpack4 设置了默认值,以便无配置启动项目 entry 默认值是 ./src/ output.path 默认值是 ./dist mode 默认值是 production [模块类型] web…
报错原因:静态资源丢失 解决方案 官方文档https://cli.vuejs.org/zh/config/#vue-config-js baseUrl 从 Vue CLI 3.3 起已弃用,请使用publicPath. 在根目录创建vue.config.js 文件 // 请把代码文本粘贴到下方(请勿用图片代替代码) module.exports = {     publicPath: './' } 重新用 npm run build 打包项目部署到服务器…
经过两天的研究终于将VUE打包后的项目通过BAE发布到了网上.虽然接口方面还有一下问题但是自己还是很高兴的. 首先说一下这个项目需要用到的技术,vue+express+git+百度的应用引擎BAE. 继续编辑终于将自己写的JSON文件模拟的数据也传上去了. 具体的步骤: 1,首先讲写好的vue项目打包(具体的打包过程我就不在说了,直接npm run build,就会在VUE项目文件中重新创建一个dist文件,这个就是打包好的项目) 2,在百度的应用引擎BAE部署一个项目,一天才2毛钱很便宜.自己…
@vue/cli 3 封装了 webpack.config.js,一般都在 vue.config.js 里面配置,官网不推荐在 webpack 的 output 处理,这里踩了一下坑,希望可以帮到后面遇到的小伙伴. vue.config.js module.exports = { // 这里是配置上线读取当前目录,默认是根路径,如 /js, /css 等,具体根据项目来 baseUrl: process.env.NODE_ENV === 'production' ? './' : '/', //…
在做VUE +的WebPack脚手架项目打包完成后,在IIS服务器上运行发现项目中的背景图片加载不出来检查项目代码发现是因为CSS文件中,背景图片引用的路径问题;后来通过修改配置文件,问题终于解决了,解决方法如下: 注意:如果整体为空白,记得先改===>>> 1.记得改一下config下面的index.js中bulid模块导出的路径.因为index.html里边的内容都是通过script标签引入的,而你的路径不对,打开肯定是空白的.先看一下默认的路径. module.exports =…
最近一直坚持每个月写一个小的vue.js 开发的项目,最后开发完成后想到很久之前给别人回答的一个问题:vue的项目如何上线,当时有千奇百怪的回答,我在想,这些人都是肿了么,vue的官方都说了,这个框架只是做了view这一层,所以并不是把这些开发完的东西直接拷贝到服务器上,而且需要打包为静态文件上传服务器的.这里我简单的列出这个过程: 首先需要修改一下配置文件再打包,很多人都是遇到过打包后运行一片空白等等问题,这些问题主要就是路径的问题,所以需要修改config下面的index.js这个配置文件里…
前言 最近由于公司需要,需要写一个相对来说比较大型的后台管理系统.为了保证管理系统操作体验较为舒适并且项目后期益于维护,最后决定基于VUE全家桶来开发一个高度组件化的单页SPA应用. 技术选型 vue:进行数据绑定以及开发组件 vue-router: 处理页面路由 vuex: 处理各组件间的通讯 vue-resource:处理HTTP请求 element-ui:使用UI框架中部分UI组件进行快速开发 项目创建 首先我们需要保证自己电脑安装有Node运行环境 打开命令行工具,输入下面指令进行全局安…
这是今年的第一篇博客.整理一下vue如何从项目打包到部署服务器,给大家做下分享,希望能给大家带来或多或少的帮助,喜欢的大佬们可以给个小赞,如果有问题也可以一起讨论下. 第一步:这是很关键的一步.打开项目,找到config文件夹下的index.js.搜索  assetsPublicPath  默认值为 '/‘ 应改为你要挂在到服务器的那个文件下的路径 . 第二步:因为在开发时 会有跨域问题 我们为了方便会配置跨域代理比如proxyTable 一般都这样写,因为要部署到服务器上所以到服务器上之后就不…
公司还一直在延续使用jq+seajs的技术栈,所以只能基于现在的技术栈进行静态文件打包,而众所周知seajs的打包比较"偏门",在查了不少的文档和技术分享后终于琢磨出了自己的打包策略. 本文目录 1. devDependencies依赖 2. css的压缩.合并.md5 3. seajs合并 4. js压缩 5. html压缩 6. 程序的默认执行 7. 总结 一:devDependencies依赖 了解gulp的肯定对npm都有所了解,在这里就不再赘述,直接贴依赖包. "d…
vuejs是个前端框架,npm run dev的目的在于前端开发的时候可以实时调试.所以npm run dev 只是开发时期会用到,在生产环境中我们应该使用nginx,apahce tomcat等应用服务器部署!现在尝试把这个项目放到本地的tomcat服务器上去运行.首先npm run build,然后把dist下生成的文件丢到一个tomcat服务器webapp下面的一个自定义文件夹 打包生成dist文件夹 生成的js者是压缩后的 refer to : ttps://jingyan.baidu.…
博主刚刚解决了index.html空白问题,刚打开项目页面又发现了样式出现了大问题,样式与开发版本有很大不同,有些样式没有生效.利用搜索引擎,找到了问题所在以及解决办法:main.js中的引入顺序决定了打包后css的顺序,组件内的样式没有生效可能是被第三方组件样式覆盖了,所以把第三方组件放在前面引入,router放在后面引入,就可以实现组件样式在第三方样式之后渲染.代码如下: main.js // The Vue build version to load with the `import` c…
本文的目标是通过下文介绍的适配方案,使用vue或react开发移动端及H5的时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局,提升开发效率. 下文给出了本人分别使用create-react-app搭建的react(create-react-app)项目和使用vue-cli 2.x 搭建的vue项目中的 亲测可用 配置方案. px2rem或postcss-px2rem 在移动端中,为了设配不同的设备,通常使用rem来做适配. rem是通过根元素进行适配的,网页中的根元素指的是<h…
前提: 配置git.以及git的ssh key信息 假设已经都安装好了,此处我用vue项目为例,因为vue-cli已经默认为我生成了ignore文件 在项目目录 初始化本地仓库,会创建一个.git目录 git init 将项目所有文件(未被ignore)添加到仓库 git add . 将add文件提交到本地仓库 git commit -m ‘提交信息’ 本地仓库关联远程git仓库 git remote add origin git仓库 本地仓库代码提交到服务器 git push -u origi…
1.执行npm run build之后生成dist文件夹 2.打开HBuilderX新建一个APP项目 3.把dist文件夹里的所有文件拷贝替换到APP文件夹下 4.打开manifest.json文件配置相关内容(自行百度,配置APP图标等选项) 5.点击软件顶上的发行--原生APP-云打包进行打包 6.打包后下载安装即可 ---------------------------------------------------------------------------------------…
我们在本地写好代码,然后打包上线前需要修改相关的配置文件,否则项目无法正常运行,主要是路径不对,找不到相关文件. 1.修改config > index.js(如下图) 2.在build > utils.js里如下图的地方添加publicPath: "../../"即可. 修改好以上两点,就可以运行部署你打包好的项目了.…
使用 npm run build 打包项目 在根目录中有一个dist文件夹 我使用的服务器是 Apache  Tomcat 把项目放进tomcat /webapps 中 启动服务器 <mac OS tomcat 启动/停止服务> 访问地址 http://localhost:8080/cnode…
assets文件夹是放静态资源:components是放组件:router是定义路由相关的配置:view视图:app.vue是一个应用主组件:main.js是入口文件:…
中文文档:vuex官方中文网站 一.vuex里面都有些什么内容? const store = new Vuex.Store({ state: { name: 'weish', age: }, getters: { personInfo(state) { return `My name is ${state.name}, I am ${state.age}`; } } mutations: { SET_AGE(state, age) { commit(age, age); } }, actions…
这次遇到的一个问题困扰了我很久很久,大致就是vue路由的addRoutes方法的使用,每次在调用了这个之后router对象中并没有将路由添加进去,接下来,我一步一步的分析原因及解决方法(个人见解,仅供参考) (1)先看看我的失败的代码 ​ store.getters.addRouters我存在vuex中,但是实际是存于session中的,所以刷新后是不会丢失数据的 ​ 在app.vue的mounted输出this.$router对象,发现options.routes数组并没有将动态路由添加成功,…
(一)关于computed修改data里变量的值 问题:computed里是不能直接修改data里变量的值,否则在git commit 时会报错 解决:在computed里使用get和set来进行获取和修改data变量,(参考下图) ​ (二)computed里监听数组的变化 问题:computed里返回一个数组,但是在进行交换数组里两个元素的位置不能触发computed的更新(视图不能更新) 解决:使用this.$set修改数组的值 this.$set(arr,index,val),arr是指…
目录 安装 compression-webpack-plugin 更改配置文件 服务器开启gzip功能 安装 compression-webpack-plugin 建议安装v1.1.11版本,最新版本可能会报错 cnpm i compression-webpack-plugin@1.1.11 -D 更改配置文件 开启生产环境gzip功能. /config/index.js: productionGzip: true, /build/webpack.prod.config.js: webpackC…
一.流程图效果 最近一段时间在研究go.js,它是一款前端开发画流程图的一个插件,也是一个难点,要说为什么是难点,首先,它是依赖画布canvas知识开发.其次,要依赖于内部API开发需求,开发项目需求的时候就要花费大量的时间去熟悉go.js的API,然后才能进行开发.话不多说,我就先把我最近做的项目案例效果图展示一下: 看到效果图大家可能会想这个挺简单的,会想没什么难点,其实真正开发的时候才会知道的.才会领悟到. 二.为什么选go.js流程图插件去开发项目? 在项目开发一期的时候我用的不是go.…
有一个util.js文件,内容如下 function Util () { ... } export default new Util() 可以在main.js里面通过import引入js import Vue from 'vue' import util from './util/Util' Vue.prototype.$util = util 之后就可以在组件中通过this.$util来调用了. 简单方便,为了避免忘记,特此记录一下.哈哈~…
1.mouseup事件丢失 查看了网上资料,造成mouseup事件丢失有两种原因: (1)触发了浏览器的drag事件 (2)由于鼠标离开了操作的区域,触发了mouseleave事件导致mouseup丢失 解决办法: 针对第一种情况:阻止系统默认操作防止drag被触发 在@mouseup或v-on:mouseup后面加上.prevent阻止默认操作,和.stop阻止事件冒泡(此方法是根据网上原生js改写,还没有实践) 同时记录下网上的的原生解决办法 ​ 第二种情况: 由于鼠标是移出了操作范围而丢失…