想问下作者关于vue serve/build和npm run serve/build(vue-cli-service serve/build)的区别
Closed this issue · 9 comments
我目前使用的也是vue-cli3版本,但是有些疑惑vue xxx和npm run xxx(也就是vue-cli-service xxx),这两套命令有什么区别吗,如果执行效果一样的话为什么还会同时存在呢~
这两个命令没啥区别,vue serve 本质调用的是 vue-cli-service 内置 serve 插件。因为vue-cli3.x是一个插件的机制。你说的是项目中同时存在两个命令么?
是的,我在build一个基于vue-cli3的vue2项目的时候,觉得同时有vue build和npm run build这两个命令很奇怪,也不太清楚有什么区别,看了您写的源码分析,也看到了这两个命令同样是创建了Service示例并执行了run方法,但是不太清楚他们是配置有什么不同吗,如果配置也是一样的话vue-cli3给了两个效果一样的构建命令就感觉很奇怪......
能将 package.json scripts 字段截个图不,我看下具体的脚本命令。
你纠结的点算是明白了,可以这样理解,vue 可以认为是一个脚手架的命令,比如:
- vue create:创建模板
- vue add: 安装插件
- vue inspect: 审查一个 Vue CLI 项目的 webpack config
- 等等
而 vue-cli-service 从字面意思也比较好理解,脚手架服务,这个命令可以启动开发环境或者构建打包环境等,只是 vue 命令可以理解为是维护了从开发到构建整个过程全套的命令,比如,create,dev以及build等(前面也有提到 dev 以及serve是 vue-cli-service 内置插件服务)。
如果你还是纠结这两个命令,你也可以换这种思路:vue 命令包含了 vue-cli-service 所有命令,你总不能用 vue-cli-service create
去创建模板吧,你也不能基于 vue.js 去开发 vue-cli-service 插件吧。所以这两者虽然 vue 命令行功能包含了 vue-cli-service,但两者也是相辅相成。vue create,add 等命令是脚手架自身实现,而 dev,build 是基于 vue-cli-service 实现。
如果还有疑惑可以再次深入探讨。
感谢作者的耐心回复,不知道我理解的对不对,除了vue独有的命令如create、add等等以外,其他的如vue serve、vue build命令和vue-cli-service serve、vue-cli-service build的执行效果是一模一样的,原因就是vue serve/build命令完全是基于vue-cli-service的,是这样吗?
感谢作者的耐心回复,不知道我理解的对不对,除了vue独有的命令如create、add等等以外,其他的如vue serve、vue build命令和vue-cli-service serve、vue-cli-service build的执行效果是一模一样的,原因就是vue serve/build命令完全是基于vue-cli-service的,是这样吗?
vue3 执行的效果的确是这样,至于你们为什么要将 vue 命令换成 vue-cli-serve,要看下之前 vue命令的版本,比如升级到了 vue-cli3,就统一成了 vue-cli-serve
命令
明白了,太谢谢您啦~
希望您工作顺利,天天开心^-^