最近在知乎看到一个问题,原问题如下:

“很奇怪,为什么现在能找到自己手动创建vue脚手架的文章非常少,而且大家似乎对webpack4的热情并不高,对于想基于vue2.0+webpack4搭建一个脚手架的我来说资料真是少得可怜。难道现在一般的做法就是直接从vue-cli开始然后改成自己需要的模样吗?难道就没有人从零开始搭建一个渐进增强的脚手架?这一点我很疑惑,希望大牛给点指导。”

这个问题我之前在公司也曾想过,当初入门vue项目也是从一个 npm install vue-cli -g 的命令行开始的,觉得官方提供的vue-cli脚手架很友好,不用想vue+webpack的工作流怎么搭建,vue-loader 和 css-module怎么配置,如何安装使用eslint和editorconfig等,就可以直接进入业务代码的开发阶段。

当然,以上是对于写业务代码的前端一线编码人员来说的,对于追求上进的你当然不满足于一直写业务代码,你也想知道一个项目在破土动工前,前端leader是怎么搭建一个前端项目的工作流的,如何去手动配置一个具体项目的webpack打包文件,包括后期的SSR,服务端渲染。

这些都是你提升自己内功的砝码,也是初级前端和中级前端的区别所在,初级前端只会在leader安排下的一个模块里写点业务代码而不用去管前端工程的问题,这些问题都被前端leader搞定了,你只需调用他写好的命令或者插件即可。

中级前端或者更进阶者就有统筹全局的能力,类似于文章开头说的,能手动创建一个和公司项目需求深度定制的vue脚手架,而不再依赖于官方提供的vue-cli,一方面自己定制的脚手架哪出了问题自己心里清楚,从而也能培养自己前端架构的能力,另一方面这也是月薪10K与20K的技术差距。

当然,如果你直接使用了vue-cli,你的领导要求你将webpack的版本从3升级到最新的大版本4,你会不会一脸懵逼呢?举个例子: 在webpack4.0中,如何使用extract-text-webpack-plugin配置css单独分离打包,以及如何解决在升级过程中碰到的一些坑?如果你没有亲手升级过webpack4,你根本不会发现这些问题,例如extract-text-webpack-plugin的报错:

(node:12712) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` insteadE:\***\myproject\webpack-vue-elementUi\node_modules\webpack\lib\Chunk.js:460throw new Error(^Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint insteadat Chunk.get (E:\***\myproject\webpack-vue-elementUi\node_modules\webpack\lib\Chunk.js:460:9)at E:\***\myproject\webpack-vue-elementUi\node_modules\extract-text-webpack-plugin\dist\index.js:176:48at Array.forEach (<anonymous>)at E:\***\myproject\webpack-vue-elementUi\node_modules\extract-text-webpack-plugin\dist\index.js:171:18复制代码

这个问题的解决方式你在百度上暂时还搜不到答案,只能是依靠平时阅读官方文档、技术社区等寻找解决之道。 后来经过排查你会发现是由于extract-text-webpack-plugin目前还没有webpack4版本。可以使用该方式npm install extract-text-webpack-plugin@next解决。

这就是硬实力的一种体现,在公司里技术的高低,体现于公司项目中碰到的难以解决的bug的解决能力。你可以看看平时在公司里谁解决的bug多,一般不是太难的bug都是前端小组的成员去解决,比较难的bug大多数情况下是前端小组的leader去解决的。

这种硬实力的体现,折射出他为何是leader,你为何是被管理者,同样的岗位,放你上去,你不一定能解决掉项目中碰到的问题,而他能。所以,童鞋们,人家之所以是leader,是因为人家有高你一筹的技能,而这恰恰是你现阶段所缺少的。

俗话说,不想当leader的程序猿不是好码农。所以,平时你们可以在公司里看看你们的leader在忙些什么。

这就是我为什么不推荐你使用vue-cli创建脚手架的原因(此文的受众是想要进阶中级的初级前端人员)。

接下来,我会分章节手把手教大家如何从零开始一个vue+webpack前端工程工作流的搭建,以及SSR服务端渲染。文章预告如下:

  • 一个正式项目的目录结构是怎么形成的
  • vue-loader是如何配置的
  • 浅谈css-module配置
  • 安装使用eslint检查的小技巧
  • 如何在前端项目中配置editorconfig以及precommit
  • 怎么用createRenderer的方式进行服务端渲染
  • 正式环境打包以及异步模块打包优化

以上内容均会第一时间发布在我的公众号:闰土大叔 ,欢迎关注。

为什么我不推荐你使用vue-cli创建脚手架?相关推荐

  1. Vue CLI 3 脚手架搭建

    @[TOC](Vue CLI 3 脚手架搭建) 注意 see -> cli.vuejs.org/zh/guide/ Vue CLI 的包名称由 vue-cli 改成了 @vue/cli Vue ...

  2. 使用Vue cli创建Vue项目

    使用Vue cli创建Vue项目 第一步:安装node.js 安装node.js,从node.js官网下载并安装node,安装过程很简单,一路"下一步"就可以了(傻瓜式安装).安装 ...

  3. 使用 Vue CLI 创建 Vue 2.x 项目

    使用 Vue CLI 创建 Vue 2.x 项目 什么是 Vue CLI 使用 Vue CLI 创建 Vue.js 项目 1. 准备 Node 和 npm 1.1 检查 Node 版本: 1.2 检查 ...

  4. 解决@vue/cli 创建项目是安装chromedriver时失败的问题

    最近在使用新版vue的命令行工具创建项目时,安装chromedriver老是失败,导致后面的步骤也没有进行.网上搜索了一下,全是使用 工作中常见问题汇总及解决方案 npm install chrome ...

  5. 什么是Vue CLI(脚手架)?

    1.如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI 使用Vue.js开发大型应用时,我们需要考虑代码目录结构.项目结构和部署.热加载.代码单元测试等事情. 如果每个项目都要手动完 ...

  6. vue cli创建vue3.0项目步骤

    1.安装node.js(node.js下载地址) 2. 全局安装vue-cli最新版本 npm install -g @vue/cli 安装成功后,可以通过 vue -V 查看下载的@vue/cli版 ...

  7. Vue CLI 初始化脚手架详解

    1.说明 1.Vue 脚手架 是Vue 官方的标准化开发工具 (开发平台) 2.最新的版本是 4.X 3.文档 Vue CLI 2.具体步骤 1.如果下载缓慢请配置 npm 淘宝镜像 npm conf ...

  8. Vue cli创建项目时键盘操作无效(箭头移动失效、交互提示符失效)

    用 git bash 使用 vue create demo 创建新项目时,键盘方向键失效,无法选中对应的选项(交互提示符不工作),问题状态如下图所示.文中给出四种解决方案,供各位参考. 方案一 使用电 ...

  9. vue创建脚手架项目

    @vue/cli是Vue官方提供的一个全局模块包(得到vue命令), 此包用于创建脚手架项目 目录 一.创建脚手架项目 1.全局安装命令 2.查看vue脚手架版本 3.@vue/cli 创建脚手架项目 ...

  10. Vue CLI 官方文档(一)@vue/cli、@vue/cli-service、插件和 Preset

    Vue CLI 官方文档(一)@vue/cli.@vue/cli-service.插件和 Preset 文章目录 Vue CLI 官方文档(一)@vue/cli.@vue/cli-service.插件 ...

最新文章

  1. 解决mysql-5.5导入数据报错
  2. windows docker 卸载_安装Docker(Docker Toolbox)与Splash库
  3. V-rep对UR3机械臂仿真路径规划
  4. 能源局将提高光伏“领跑者”项目技术指标
  5. 在Spring MVC Web应用程序中添加社交登录:单元测试
  6. 【PetShop 4.0学习】4.数据库结构
  7. 利用nginx集群式部署服务器中,数据同步问题
  8. 阿里MySQL读写一致_缓存与数据库读写一致的解决方案
  9. 常用api查询网站记录
  10. ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条...
  11. OpenCV——图像二值化
  12. tplink软件升级有用吗_tplink路由器固件更新的方法
  13. hadoop集群:关于Could not obtain block:报错问题
  14. 为什么世界上只有13个根域名服务器
  15. 你好!Docker【概念+源码+保姆式教程】
  16. 软件国际化—语言代码表
  17. matlab绘制中国地图
  18. 下一代云计算模式:Docker正掀起个性化商业革命
  19. 编码这件小事,我仍在努力
  20. 【Python3 爬虫学习笔记】用PySpider爬取虎嗅网并进行文章分析

热门文章

  1. iOS开发中用到的第三方库概览
  2. UITablView索引列表
  3. 大哥你需求里说只要工作流引擎组件,怎么真正需要的东西这么.悲剧了,客户需求无止境...
  4. 永中Office—给公文设置密码
  5. oracle索引的监控
  6. office2007右键doc,xls
  7. spring整合hibernate出现HibernateException: Unable to get the default Bean Validation factory
  8. netty 水位线与oom
  9. 结合Kubernetes解读微服务的12要素
  10. 正则表达式表示的IP地址