在vue-cli 2.X的时候,也写过一篇相似的文章,在八月份的时候vue-cli已经更新到了3.X,新版本的脚手架,功能灰常强大,试用事后很是喜欢,写篇教程来帮助各位踩一下坑。css
.vue
文件若是你事先已经全局安装了旧版本的vue-cli
(1.x 或 2.x),你须要先卸载它:前端
npm uninstall vue-cli -g
复制代码
3.x须要在Node.js
8.9或更高版本(推荐8.11.0+),点击这里能够安装nodevue
大多数人都安装过了node,使用下面的命令行查询你的node版本:node
node -v
复制代码
若是你的版本不够,可使用下面的命令行来把Node版本更新到最新的稳定版:webpack
npm install -g n // 安装模块 这个模块是专门用来管理node.js版本的
n stable // 更新你的node版本
复制代码
mac下,更新版本的时候,若是提示你权限不够:git
sudo n stable // 我就遇到了
复制代码
npm install -g @vue/cli // 安装cli3.x
vue --version // 查询版本是否为3.x
复制代码
若是cli3.x用的不舒服,cli3也能使用2.x模板:github
npm install -g @vue/cli-init // 安装这个模块
// 就可使用2.x的模板:vue init webpack my-project
复制代码
.vue
文件:npm install -g @vue/cli-service-global
复制代码
安装完扩展以后,能够随便找个文件夹建一个以下方示例的.vue文件,而后跑起来:web
vue serve App.vue // 启动服务
vue build App.vue // 打包出生产环境的包并用来部署
复制代码
如图所示,服务启动的时候回生成一个node_modules
包,稍微测试了一下,服务支持ES6语法和热更新,打包的时候会生成一个dist
文件夹。(新建一个test.vue文件也只有一个node_modules
/dist
文件夹)vue-router
这是个很棒的功能,用于开发一个库、组件,作一些小demo等都是很是适合的!
vue create hello-cli3
复制代码
hello-cli3是文件夹名字,若是不存在会自动建立文件夹,若是存在会安装到那个文件夹中。
相比2.x的时候须要本身手动建立一个文件夹,这里也算是一个小优化吧。
一开始只有两个选项: default
(默认配置)和Manually select features
(手动配置)
默认配置只有babel
和eslint
其余的都要本身另外再配置,因此咱们选第二项手动配置。
在每次选择手动配置以后,会询问你是否保存配置,也就是图片中的koro
选项,这样之后咱们在进行建立项目的时候只需使用原先的配置就能够了,而不用再进行配置。
根据你的项目须要来选择配置,空格键是选中与取消,A键是全选
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
// 检查项目所需的功能:(按<space>选择,<a>切换全部,<i>反转选择)
>( ) TypeScript // 支持使用 TypeScript 书写源码
( ) Progressive Web App (PWA) Support // PWA 支持
( ) Router // 支持 vue-router
( ) Vuex // 支持 vuex
( ) CSS Pre-processors // 支持 CSS 预处理器。
( ) Linter / Formatter // 支持代码风格检查和格式化。
( ) Unit Testing // 支持单元测试。
( ) E2E Testing
复制代码
若是你选择了Css预处理器选项,会让你选择这个
? Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default):
// 选择CSS预处理器(默认支持PostCSS,Autoprefixer和CSS模块):
> SCSS/SASS
LESS
Stylus
复制代码
history
模式:这里我建议选No,这样打包出来丢到服务器上能够直接使用了,后期要用的话,也能够本身再开起来。
选yes的话须要服务器那边再进行设置。
Use history mode for router? (Requires proper server setup for index fallback in production)
// 路由使用history模式?(在生产环境中须要适当的服务器设置以备索引)
复制代码
> ESLint with error prevention only
ESLint + Airbnb config
ESLint + Standard config
ESLint + Prettier
复制代码
建议选保存就检测,等到commit的时候,问题可能都已经积累不少了。
以前写了篇VsCode保存时自动修复Eslint错误推荐一下。
? Pick additional lint features: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>( ) Lint on save // 保存就检测
( ) Lint and fix on commit // fix和commit时候检查
复制代码
? Pick a E2E testing solution: (Use arrow keys)
❯ Cypress (Chrome only)
Nightwatch (Selenium-based)
复制代码
一般咱们会选择独立放置,让package.json干净些
? Where do you prefer placing config for Babel, PostCSS, ESLint, etc.? (Use arrow keys)
> In dedicated config files // 独立文件放置
In package.json // 放package.json里
复制代码
Save this as a preset for future projects? (Y/n) // 是否记录一下以便下次继续使用这套配置
// 选保存以后,会让你写一个配置的名字:
Save preset as: name // 而后你下次进入配置能够直接使用你此次的配置了
复制代码
一块儿来看一下新项目的结构(下图),会发现2.x的webpack配置的目录不见了,也就是没有build、config这两个文件夹了:
这种方式的优点对小白来讲很是友好,不会一上来就两个文件夹,一堆文件,看着脑壳都大了。
而后在引用抄别人的配置的时候,也很是方便,直接将文件复制过来就行了。
在自定义一下webpack的配置,咱们须要在根目录新建一个vue.config.js
文件,文件中应该导出一个对象,而后进行配置,详情查阅官方文档
// vue.config.js
module.exports = {
// 选项...
}
复制代码
还有一些小变更像:static文件夹改成public了,router文件夹变成了单个文件之类的(我以前一直这么作,嘿嘿)。
启动项目:npm run serve // 不是以前的 npm run dev
打开http://localhost:8080
:
vue ui
复制代码
这是个全局的命令 在哪一个文件夹均可以打开
界面(下图),重要的项目能够收藏起来(置顶):
目录选中以后,导入项目点击下面的导入就能够了。
建立项目,填一个文件夹名字:
而后选一下预先保存好的设置就能够了,很是方便,建议采用图形界面来建立项目:
当咱们点击hello -cli3项目,就会进入项目管理的界面
这个仪表盘,主要是为了咱们操做方便而设置的
能够点击右上角的按钮,来添加/移动这些功能选项。
vue-cli3的插件功能,详情了解官方文档
cli3插件安装的过程:
直接在图形界面管理依赖很舒服了!
安装依赖的时候,要记得选择开发依赖/运行依赖!
能够对cli进行一些配置、Eslint规则修改:
serve 运行项目,点击直接运行,不再用输入命令了!
能够清楚的看到各个模块用了多久,方便咱们针对性的进行优化:
build 打包项目:这里主要展现了图表的功能,比之前2.x生成报告更加直观,超级棒!
夜间风格界面,我更喜欢这个界面
直接打开编辑器,很棒了!
还有一些乱七八糟的按钮
能够说很认真了,但愿你们看完可以有些收获,赶忙试试新版的vue-cli吧!
以上2018.11.10
参考资料: