We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.0大改版就相当于重新定义了玩法规则,这个规则可能是当下流行的,你得学习一遍适应这个规则,才能"拥抱未来"。
说到这儿,就想到了我们作为公民,也是被当作一个个粒度的个体在一定的规则下去被玩,这被叫做"韭菜"。
扯远了,让我们进入主题
vue -h
~/.vuerc
cli的核心由2部分组成
cli
本身提供的基础功能,例如create,add,invoke,inspect,config,ui。 ui是依赖@vue/cli-ui的,我们查看lib/ui.js发现本质是利用require('@vue/cli-ui/server')起服务
@vue/cli-ui
lib/ui.js
require('@vue/cli-ui/server')
cli-service-global
serve和build是基于@vue/cli-service-global的,由名称我们也可以想到它是基于@vue/cli-service的, 官方用词是"快速原型开发",也就是你提供一个Component.vue文件就可以直接起本地服务或打包,global在这里帮你提供了template,index.html和main.js
@vue/cli-service-global
@vue/cli-service
Component.vue
index.html
main.js
@vue/cli-service是本地的一个包,处理配置插件,打包起服务都是靠它,还有项目初始化的结构模版也在里面。
从上面我们基本了解了一遍他本身核心的部分:模版,脚手架。它还有一个重要的组成部分即插件。
初始化项目时会让你选配置项,便会生成~/.vuerc,vue config就是列出~/.vuerc中的全部内容,你选择的配置项也就是插件,这种将插件保存起来的部分称为preset
vue config
preset
官方帮你写好了几个常用插件
vue add @foo/bar就是用来添加插件的,满足在项目后期有添加插件的场景
vue add @foo/bar
说完插件还有polyfill,同样的,官方为你写好了babel-preset-app,我们可以看到在官方的推荐中,是这么写的:
babel-preset-app
presets: [ '@vue/app' ]
这和上面插件的添加写法一致,它被解析为组名/babel-preset-包名简写,插件是被解析为组名/cli-plugin-包名简写
组名/babel-preset-包名简写
组名/cli-plugin-包名简写
所以这里的preset实际是加载的@vue/babel-preset-app,它默认为你做了几件事情:
@vue/babel-preset-app
useBuiltIns: 'usage'
es6.array.iterator
es6.promise
es7.promise.finally
他推荐我们使用浏览器不支持的属性时手动引入core-js,有个疑问是core-js中是es.promise,在他这里为es6.promise,不知哪里做的转换。
core-js
es.promise
优化最大的一个做法是,在打包的时候加上--modern属性,它会打包2份代码,一份支持es module的现代浏览器,一份就是我们现在引用polyfill的代码。他们会同时被index.html引入,通过type = module和nomodule区分,因为浏览器支持这2个属性,还支持modulepreload
--modern
es module
type = module
nomodule
modulepreload
通过vue.config.js来代替之前的config/index.js
vue.config.js
config/index.js
ElementUi
babel.config.js
plugins
Options can't be an array in babel@7+, but you can add plugins with name to support multiple dependencies.
开启eslint需要在vue.config.js里配置lintOnSave: true
lintOnSave: true
推荐显式地引入需要的 polyfill,具体请查看core-js modules,配置在preset下
presets: [ [ '@vue/app', { polyfills: ['es6.string.includes'] } ] ]
The text was updated successfully, but these errors were encountered:
No branches or pull requests
vue-cli v3.0.1总览
3.0大改版就相当于重新定义了玩法规则,这个规则可能是当下流行的,你得学习一遍适应这个规则,才能"拥抱未来"。
说到这儿,就想到了我们作为公民,也是被当作一个个粒度的个体在一定的规则下去被玩,这被叫做"韭菜"。
扯远了,让我们进入主题
1.先从
vue -h
查看开始,提供了~/.vuerc
配置文件,也就是预置的配置和presetscli的核心由2部分组成
cli
本身提供的基础功能,例如create,add,invoke,inspect,config,ui。
ui是依赖
@vue/cli-ui
的,我们查看lib/ui.js
发现本质是利用require('@vue/cli-ui/server')
起服务cli-service-global
serve和build是基于
@vue/cli-service-global
的,由名称我们也可以想到它是基于@vue/cli-service
的,官方用词是"快速原型开发",也就是你提供一个
Component.vue
文件就可以直接起本地服务或打包,global在这里帮你提供了template,index.html
和main.js
@vue/cli-service
是本地的一个包,处理配置插件,打包起服务都是靠它,还有项目初始化的结构模版也在里面。2.插件
从上面我们基本了解了一遍他本身核心的部分:模版,脚手架。它还有一个重要的组成部分即插件。
初始化项目时会让你选配置项,便会生成
~/.vuerc
,vue config
就是列出~/.vuerc
中的全部内容,你选择的配置项也就是插件,这种将插件保存起来的部分称为preset
官方帮你写好了几个常用插件
vue add @foo/bar
就是用来添加插件的,满足在项目后期有添加插件的场景3.polyfill
说完插件还有polyfill,同样的,官方为你写好了
babel-preset-app
,我们可以看到在官方的推荐中,是这么写的:这和上面插件的添加写法一致,它被解析为
组名/babel-preset-包名简写
,插件是被解析为组名/cli-plugin-包名简写
所以这里的preset实际是加载的
@vue/babel-preset-app
,它默认为你做了几件事情:useBuiltIns: 'usage'
es6.array.iterator
,es6.promise
,es7.promise.finally
他推荐我们使用浏览器不支持的属性时手动引入
core-js
,有个疑问是core-js
中是es.promise
,在他这里为es6.promise
,不知哪里做的转换。优化最大的一个做法是,在打包的时候加上
--modern
属性,它会打包2份代码,一份支持es module
的现代浏览器,一份就是我们现在引用polyfill的代码。他们会同时被index.html引入,通过type = module
和nomodule
区分,因为浏览器支持这2个属性,还支持modulepreload
4.环境变量和配置
通过
vue.config.js
来代替之前的config/index.js
5.与2.x的差异
ElementUi
时,babel.config.js
里插件plugins
选项不支持多个了,请戳babel-plugin-import开启eslint需要在
vue.config.js
里配置lintOnSave: true
推荐显式地引入需要的 polyfill,具体请查看core-js modules,配置在
preset
下The text was updated successfully, but these errors were encountered: