@vue/cli 跟 vue-cli 相比,@vue/cli 的优势在哪?
一、Vue CLi的初衷
Vue-cli: 开箱即用,但强制性强,需要按照它的规则进行
Vue CLI:开箱即用,简单易用
二、为什么要对 Vue-cli 进行修改
旧版本的 Vue-cli 本质上只是从 GitHub 拉取模版,它就像一个模版拷贝器, 这样的拉取模版的方式有几个问题
1、单个模版之间相互依赖,耦合性太高,无法实现共享功能和互相迁移,使得模版本身变得及其复杂和难以维护
2. webpack 配置和构建包含在仓库内,如 webpack 被改动,则会影响其他关联的插件
三、解决Vue-cli问题:
1. 依赖 vue-service:
CLI3 将Webpack的配置和逻辑全部封装在依赖中,同时允许用户通过 Vue.config.js 配置进行修改 Webpack,
好处是:CLI 3 更新后,并不会影响到其他插件,此时我们只需要专注与功能,底层的配置只需要交给 Vue 团队去进行维护即可。
2. 插件化:
CLI3 通过插件的形式去支持多个不同的功能,一个插件对应一个功能,比如(router, TS, Test), 这样避免了多个模版,使得 CLi 自身的可维护性得到提升,同时支持第三方插件。
四、总结:
VueCLI | React | |
快速原型开发 | 支持 | - |
全局模式 | 通过 @vue/cli + @vue/cli-service-global 实现的零配置原型开发。 |
- |
插件 | 支持,提供可选功能的 npm 包 | - |
扩展性 |
可以通过插件进行扩展 |
强约定, 无法配置 webpack,可以 eject |
适用范围 | 通过扩展可以支持任意前端框架 | 针对 React 开发,不支持其他框架 |
编译速度 | cache-loader,thread-loader 来加速 JS 和 TS 编译 | babel-loader 开启了 cache |
可升级性 | 依赖 (@vue/cli-service ),该依赖可升级,升级后,webpack会跟随着升级 |
支持 |
多页面 | 支持 | - |
GUI |
支持,一套完全图形化的创建和管理 Vue.js 项目的用户界面。 |
- |
五、参考 VueCLI 的文档
六、文献:
2. 为什么使用vue-cli脚手架?vue-cli3.0的优势在哪里?