VUE CLI 3 配置

栏目: JavaScript · 发布时间: 5年前

内容简介:本章详细介绍使用vue-cli3.0来搭建项目。 本章使用vue-cli3.0构建的项目是基于webpack的模板文件,构建后的项目属于单页面(SPA)应用。因此,该文档后续操作与说明不适用于构建一个多页面应用。相比于之前有如下优点:你可以使用vue --version 或者 vue -V检查其版本

本章详细介绍使用vue-cli3.0来搭建项目。 本章使用vue-cli3.0构建的项目是基于webpack的模板文件,构建后的项目属于单页面(SPA)应用。因此,该文档后续操作与说明不适用于构建一个多页面应用。

相比于之前有如下优点:

  • 功能丰富:对babel、Typescript、ESLint...提供开箱即用的支持
  • 易于扩展:它的插件系统可以让社区根据需求构建和共享可复用的解决方案
  • 无需Eject:vue cli 完全可配置的,无需再使用webpack配置
  • CLI图形化界面:vue ui图形化界面创建、开发和管理项目
  • 即刻创建原型:用单个vue文件实现新的灵感
  • 面向未来:为现代浏览器轻松产出原生的ES2015代码,或将你的vue组件构建为原生的Web Components组件

1、vue-cli3.0初始化

安装@vue/cli

# npm install -g @vue/cli
OR
# yarn global add @vue/cli
复制代码

你可以使用vue --version 或者 vue -V检查其版本

VUE CLI 3 配置
注意事项:
  • VUE CLI3的包名称由 vue-cli 改成 @vue/cli 。如果你已经安装了旧版本的vue-cli(1.x或2.x),你先通过 npm uninstall vue-cli -gyarn global remove vue-cli 卸载它。
  • VUE CLI3需要 node8.9更高版本 (推荐8.11.0+)
  • VUE CLI3和旧版本使用了相同的vue命令,所以Vue CLI2(vue-cli)被覆盖了。如果你仍然需要使用旧版本的vue init 功能,你需要全局安装一个桥接工具:
npm install -g @vue/cli-init
Vue init webpack myVue
复制代码

创建项目

可以使用 vue ui 图形化界面创建和管理项目,这里不做阐述,请自行查看 cli.vuejs.org/ ,下面以命令行形式进行创建:

vue create vuedemo
复制代码

你会被提示选取一个preset。你可以选默认的包含了基本的Babel+ESLint设置的preset,也可以选 手动选择特性 来选取需要的特性。

VUE CLI 3 配置

这个默认的设置非常适合快速创建一个新项目的原型,而手动设置则提供了更多的选项,它们是面向生产的项目更加需要的,下面以”手动设置“为例。 以上下键移动,以空格键进行是否选定

VUE CLI 3 配置
  • Babel : 将ES6编译成ES5
  • TypeScript: javascript类型的超集
  • Progressive Web App (PWA) Support: 支持渐进式的网页应用程序
  • Router:vue-router
  • Vuex: 状态管理
  • CSS Pre-processors: CSS预处理
  • Linter / Formatter: 开发规范
  • Unit Testing: 单元测试
  • E2E Testing: 端到端测试

如果后续你想在一个已经被创建好的项目中安装插件,可以使用 vue add 命令:

D:\i\vuedemo> vue add vuex
复制代码
VUE CLI 3 配置

出现如上字样,说明安装成功。请输入命令 cd vuedemoyarn serve 运行环境。

配置文件说明

vue-cli3.0致力于Vue生态中的 工具 基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你就可以专注在撰写应用上,减少配置的时间。查看如下文件,会发现相比于vue-cli2.0少了 buildconfig 文件夹,所以vue-cli3提供了一个可选的配置文件 —— vue.config.js 。请具体参考5.3和5.4(打包配置),这里只详细解读文件作用。

VUE CLI 3 配置
|-- dist                       # 打包后文件夹	        
|-- public                     # 静态文件夹         		                  
|   |-- favicon.ico				
|   |-- index.html					#入口页面
|-- src                        # 源码目录         
|   |--assets						# 模块资源
|   |--components					# vue公共组件
|   |--views 						
|   |--App.vue                                          # 页面入口文件
|   |--main.js	                                        # 入口文件,加载公共组件
|   |--router.js                                        # 路由配置
|   |--store.js	                                        # 状态管理
|-- .env.pre-release          # 预发布环境    
|-- .env.production	      # 生产环境       
|-- .env.test		      # 测试环境  
|-- vue.config.js             # 配置文件 
|-- .eslintrc.js    		  	# ES-lint校验                   
|-- .gitignore          		# git忽略上传的文件格式   
|-- babel.config.js   			# babel语法编译                        
|-- package.json       	     # 项目基本信息 
|-- postcss.config.js   	 	# CSS预处理器(此处默认启用autoprefixer)  
复制代码

vue.config.js配置

Vue.config.js是一个可选的配置文件,如果项目的根目录存在这个文件,那么它就会被 @vue/cli-service 自动加载。你也可以使用package.json中的vue字段,但要注意严格遵守JSON的格式来写。这里使用配置vue.config.js的方式进行处理。

const webpack = require('webpack')
module.exports = {
//部署应用包时的基本 URL
publicPath: process.env.NODE_ENV === 'production' ? '/online/' : './',
//当运行 vue-cli-service build 时生成的生产环境构建文件的目录
outputDir: 'dist', 
//放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
assetsDir: 'assets', 
// eslint-loader 是否在保存的时候检查 安装@vue/cli-plugin-eslint有效
lintOnSave: true, 
//是否使用包含运行时编译器的 Vue 构建版本。设置true后你就可以在使用template
runtimeCompiler: true, 
// 生产环境是否生成 sourceMap 文件 sourceMap的详解请看末尾  
productionSourceMap: true, 
configureWebpack: 
config => {
if (process.env.NODE_ENV === 'production') {
// 为生产环境修改配置...
} else {
// 为开发环境修改配置...
}
},
// css相关配置
css: {
// 是否使用css分离插件 ExtractTextPlugin 生产环境下是true,开发环境下是false
extract: true,
// 开启 CSS source maps?
sourceMap: false,
// css预设器配置项
loaderOptions: {},
// 启用 CSS modules for all css / pre-processor files.
modules: false
},
// webpack-dev-server 相关配置
devServer: { // 设置代理
hot: true,            			  //热加载
host: '0.0.0.0',                          //ip地址
port: 8085,			          //端口
https: false,				  //false关闭https,true为开启
open: true,				  //自动打开浏览器
proxy: {
'/api': { //本地 
target: 'xxx',
// 如果要代理 websockets
ws: true,
changeOrigin: true
},
'/test': { //测试
target: 'xxx'
},
'/pre': { //预发布
target: 'xxx'
},
'/pro': { //正式
target: 'xxx'
}
}
},
pluginOptions: { // 第三方插件配置
// ...
}
}  
复制代码

扩展:

Source map的作用:针对打包后的代码进行的处理,就是一个信息文件,里面储存着位置信息。也就是说,转换后的代码的每一个位置,所对应的转换前的位置。有了它,出错的时候,除错工具将直接显示原始代码,而不是转换后的代码。这无疑给开发者带来了很大方便。

打包配置

创建 .env.test 文件,文件内容如下

NODE_ENV='test'                    # 测试环境
VUE_APP_TT='TT'
复制代码

创建.env.pre-release文件,文件内容如下:

NODE_ENV='pre-release'              # 预发布环境
复制代码

创建.env.production文件,文件内容如下:

NODE_ENV='production'              # 正式环境
VUE_APP_T='la'
Q='1'
复制代码

package.json配置

"scripts": {
"serve": "vue-cli-service serve ",
"build:pre": "vue-cli-service build --mode pre-release",  #预发布环境
"build:test": "vue-cli-service build --mode test", #测试环境
"build:prod": "vue-cli-service build --mode production", #正式环境
"lint": "vue-cli-service lint",
"test:unit": "vue-cli-service test:unit"
}
复制代码

有关环境变量的注意事项

  • 环境名应该与环境文件统一
  • 环境文件放置根目录下
  • 除了 baseUrlNODE_ENV 其他环境变量使用 VUE_APP 开头

请各位给给意见,查漏补缺,有哪些不足之处请给予意见。呸呸,文档需要上交领导---


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从0到1

从0到1

彼得·蒂尔、布莱克·马斯特斯 / 高玉芳 / 中信出版股份有限公司 / 2015-1-1 / CNY 45.00

图书简介: http://v.youku.com/v_show/id_XOTA0NjcyMzE2.html?wm=3333_2001 硅谷创投教父、PayPal创始人作品,斯坦福大学改变未来的一堂课,为世界创造价值的商业哲学。 在科技剧烈改变世界的今天,想要成功,你必须在一切发生之前研究结局。 你必须找到创新的独特方式,让未来不仅仅与众不同,而且更加美好。 从0到1,......一起来看看 《从0到1》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

SHA 加密
SHA 加密

SHA 加密工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具