一文快速上手-Vue CLI脚手架
安装Vue CLI
(1) 全局安装Vue CLI
方式一(推荐方式):在终端安装指定版本
npm i @vue/cli@5.0.8 -g
注:目前5.0.8应该是最新的版本了。
方式二:在终端通过命令安装最新版本
npm i @vue/cli -g
(2) 升级Vue CLI到最新版本(可选)
npm update @vue/cli -g
(3) 使用vue命令创建项目
vue create 项目的名称
(4) 安装完 Vue CLI之后,可以在终端查看其版本号
vue --version
结果:
@vue/cli 5.0.8
Vue CLI新建项目
在VS Code工具中提前安装Volar插件,为vue3版本的.vue文件提供语法高亮等支持。
第一步:使用Vue CLI的vue命令新建一个名为01_vuecli_demo的Vue3版本项目。
输入命令:
vue create 01_vuecli_demo
出现如下Vue CLI脚手架默认提供的三个预设。
Vue CLI v5.0.8
? Please pick a preset: (Use arrow keys)
> Default ([Vue 3] babel, eslint)
Default ([Vue 2] babel, eslint)
Manually select features
- (1) Default ([Vue 3] babel, eslint):新建vue3默认项目,项目集成babel,eslint插件
- (2) Default ([Vue 2] babel, eslint):新建vue2默认项目,项目集成babel,eslint插件
- (3) Manually select features:新建项目,手动选择项目所需的功能,如是否需要babel和eslint插件
第二步:手动选择所需的功能。
根据需要选择相应的功能。
提示:“选中”和“取消选中”是按空格键,“上下移动”是按上下键,“确认”是按Enter键。
>(*) Babel
( ) TypeScript
( ) Progressive Web App (PWA) Support
( ) Router
( ) Vuex
( ) CSS Pre-processors
( ) Linter / Formatter
( ) Unit Testing
( ) E2E Testing
说明:
- babel:是否使用Babel作为JavaScript编译器,结合插件将ES6/7/8/9/10等语法转换为ES5语法。
- TypeScript:是否使用TypeScript。
- Progressive Web App (PWA) Support:是否支持PWA。PWA是渐进式web应用-一种无需要安装的网页应用,具有与原生应用相同的用户体验优势。
- Router:是否默认集成路由。
- Vuex:是否默认集成Vuex状态管理。Vuex用于在多个组件间共享数据。
- CSS Pre-processors:是否选用CSS预处理器,即常用的Less、Scss、Stylus预处理器。
- Linter / Formatter:是否选择Eslint对代码进行格式化限制。
- Unit Testing:是否添加单元测试。
- E2E Testing:是否添加E2E测试。
第三步:选择Vue.js版本。
根据需要选择vue版本,这儿示例选择vue3.x版本。
3.x
2.x
第四步:选择配置存放的位置。
In dedicated config files
In package.json
这儿选择“In dedicated config files”,意思就是将babel、eslint等配置信息统一放到各自独立的配置文件中,而不是放到package.json文件中。
第五步:是否保存为自定义预设。
Save this as a preset for future projects? (y/N)
输入y,表示保存自定义预设,也可以输入n,即不保存自定义预设。
如果保存了预设,在下次新建项目时,在第一步选择预设时,就可以看到我们保存过的预设,比如我们把前面的预设命名为“vue3-demo”,最后按"Enter"键即可。
第六步:新建成功的提示。
$ cd 01_vuecli_demo
$ npm run serve
vue.js 3 项目目录结构
01_vuecli_demo/ 项目名称
|-- node_modules #存放第三方依赖包(例如,执行npm i安装的依赖包)
|-- public/ #静态资源目录
| |-- favicon.ico #网站图标
| |-- index.html #项目的入口文件
|-- src/ #项目的源代码目录
| |-- assets/ #静态资源目录,如图片、字体等
| |-- components/ #可复用的 Vue 组件
| |-- router/ #Vue Router 的路由配置
| | |-- index.js #路由的主文件
| |-- store/ #Vuex 的状态管理
| | |-- index.js #状态管理的主文件
| |-- views/ #页面目录
| | |-- About.vue #关于页面
| | |-- Home.vue #首页
| |-- App.vue #根组件
| |-- main.js #项目的入口文件
|-- .browserslistrc #Browserslist 配置,用于 Autoprefixer 和其他工具确定目标浏览器和 Node.js 版本范围
|-- .eslintignore #ESLint 忽略的文件
|-- .eslintrc.js #ESLint 配置
|-- .gitignore #Git 忽略的文件
|-- babel.config.js #Babel 插件的配置文件
|-- package-lock.json #npm 依赖的锁定文件
|-- package.json #项目的元数据文件和 npm 脚本
|-- README.md #项目的说明文件
|-- vue.config.js #Vue CLI 配置文件,比如配置alias、devServer和configure Webpack等
项目的运行和打包
"serve": "vue-cli-service serve",
"build": "vue-cli-service build"
vue.config.js文件解析
- 1.outputDir:用于指定打包输出的文件名,默认是dist目录。如果想修改目录名称,可以使用outputDir配置。
module.exports = {
outputDir: 'build'
}
对于使用 Vue CLI 5.x创建的项目,vue.config.js同样支持使用defineConfig宏函数,以获得更好的代码智能提示,示例代码如下:
// defineConfig 宏函数只支持 Vue CLI 5.x
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true, // 如果选择true,那么项目引用node_modules中的包也会用Babel来编译,否则不会编译
outputDir: 'build'
})
- 2.assetsDir:用于指定静态资源存放目录。该属性是相对于outputDir路径。
module.exports = {
outputDir: 'build',
assetsDir: 'static'
}
编译后,index.html资源引用情况如下:
<script defer="defer" src="/static/js/chunk-vendors.abc53625.js"></script>
<script defer="defer" src="/static/js/app.0af7aca5.js"></script>
<link href="/static/css/app.bf008658.css" rel="stylesheet">
- 3.publicPath:用于指定引用资源的前缀。
// defineConfig 宏函数只支持 Vue CLI 5.x
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true, // 如果选择true,那么项目引用node_modules中的包也会用Babel来编译,否则不会编译
outputDir: 'build',
assetsDir: 'static',
publicPath: './'
})
当进行上述相对路径配置后,在index.html代码如下:
<script defer="defer" src="static/js/chunk-vendors.abc53625.js"></script>
<script defer="defer" src="static/js/app.0af7aca5.js"></script>
<link href="static/css/app.bf008658.css" rel="stylesheet">
- 4.alias:用于配置导包路径的别名。
例如,当项目的目录结构比较深的时候,配置一个路径别名提高了代码的可读性和维护性。
const path = require('path');
function resolve (dir) {
return path.join(__dirname, dir);
}
// defineConfig 宏函数只支持 Vue CLI 5.x
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true, // 如果选择true,那么项目引用node_modules中的包也会用Babel来编译,否则不会编译
outputDir: 'build',
assetsDir: 'static',
publicPath: './',
chainWebpack: (config) => {
config.resolve.alias
.set('@', resolve('src'))
.set('assets', resolve('src/assets'))
.set('components', resolve('src/components'))
}
})
在vuejs 3项目中,可以在vue.config.js文件中的chainWebpack属性上配置alias。chainWebpack 是一个函数,该函数会接收一个基于webpack-chain的config实例,允许对webpack配置进行更细粒度的修改。
上述配置完成后,例如HelloWorld组件的引入方式可以调整为如下两种方式:
import HelloWorld from 'components/HelloWorld.vue'
import HelloWorld from '@/components/HelloWorld.vue'
- 5.devServer: 开发环境的服务配置
所有webpack-dev-server的选项都支持。注意:
- 有些值像 host、port 和 https 可能会被命令行参数覆写。
- 有些值像 publicPath 和 historyApiFallback 不应该被修改,因为它们需要和开发服务器的 publicPath 同步以保障正常的工作。
示例:
const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
transpileDependencies: true,
devServer: {
host: "localhost",
port: 8083,
open: true,
proxy: {},
},
});
一文快速上手-Vue CLI脚手架的更多相关文章
- 13. Vue CLI脚手架
一. Vue CLI 介绍 1. 什么是Vue CLI? Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.Vue CLI 致力于将 Vue 生态中的工具基础标准化.它确保了各种构建工 ...
- 使用Vue CLI脚手架搭建vue项目
本次是使用@vue/cli 3.11.0版本搭建的vue项目 1. 首先确保自己的电脑上的Node.js的版本是8.9版本或者以上 2. 全局安装vue/cli npm install @vue/cl ...
- vue.cli脚手架初次使用图文教程
vue-cli作用 vue-cli作为vue的脚手架,可以帮助我们在实际开发中自动生成vue.js的模板工程. vue-cli使用 !!前提:需要vue和webpack 安装全局vue-cli npm ...
- 一文快速上手Logstash
原文地址:https://cloud.tencent.com/developer/article/1353068 Elasticsearch是当前主流的分布式大数据存储和搜索引擎,可以为用户提供强大的 ...
- vue cli脚手架使用
1.安装nodejs,npm https://www.cnblogs.com/xidianzxm/p/12036880.html 2.安装vue cli sudo npm install -g @vu ...
- 快速上手vue前端存储库、全局状态管理工具pinia
pinia是什么,为什么我们要使用pinia? pinia是vue全局状态管理工具,类似vueX,用于全局的数据状态存储.修改变更等等 相较于vueX,pinia的使用较为简单,轻量级,上手容易,干掉 ...
- node.js和vue cli脚手架下载安装配置方法
一.node.js安装以及环境配置 1.下载vue.js 下载地址: https://nodejs.org/en/ 2.安装node.js 下载完成后,双击安装包开始安装.安装地址最好换成自己指定的地 ...
- 一文快速上手 Nacos 注册中心+配置中心!
Spring Cloud Alibaba 是阿里巴巴提供的一站式微服务开发解决方案,目前已被 Spring Cloud 官方收录.而 Nacos 作为 Spring Cloud Alibaba 的核心 ...
- 快速上手Vue
课程目录: ES6常用语法 Vue基础以及指令 Vue组件 Vue-Router Vue生命周期 npm webpack vue-cli Vuex以及axios
- vue cli 脚手架上多页面开发 支持webpack2.x
A yuri demo for webpack2 vue multiple page.我看到有一些项目多页面项目是基于webapck1.0的,我这个是在webpack2.x上布置修改. 项目地址: ...
随机推荐
- [oeasy]python0133_变量名_标识符_identifier_id_locals
变量名 回忆上次内容 上次讲了 什么是变量 变量变量 能变的量 就是变量 各种系统.游戏就是由变量所组成的 添加图片注释,不超过 140 字(可选) 声明了变量 并且 定义了变量 ...
- Docker Compose 基本概要
Docker Compose 基本概要 Compose 是一个用于定义和运行多容器 Docker 应用程序的工具.使用 YAML 文件来配置多个应用程序的服务,包括生产.暂存.开发.测试以及 CI 工 ...
- python 私有属性的作用
python 私有属性的作用 class Player(): def __init__(self, name, power, skill): self.name = name self.power = ...
- 并行化强化学习 —— 初探 —— 并行reinforce算法的尝试 (上篇:强化学习在多仿真环境下单步交互并行化设计的可行性)
强化学习由于难收敛所以训练周期较长,同时由于强化学习在训练过程中起训练数据一般都为实时生成的,因此在训练的同时算法还需要生成待训练的数据,强化学习算法的基本架构可以视作下图:(取自:深度学习中使用Te ...
- AQS专题
1.背景 2.预备知识 2.1.park.unpark.interrupt.isInterrupted.interrupted方法的理解 一:park.unpark 1.park.unpark它不是T ...
- Windows 修改本地hosts文件
在在使用win下面的一些php集成开发工具的时候(比如 phpstudy wampserver等) 有时候会有这样的需求:我不想通过localhost/xxx/xxx/xxx.php 这样的方式访问我 ...
- 【技术积累】如何处理Feign的超时问题
在使用Feign进行微服务之间的通信时,由于网络延迟等原因,可能会出现请求超时的情况.为了解决这个问题,我们可以对Feign进行配置,设置超时时间. 配置Feign的超时时间 在使用Feign时,我们 ...
- 构建无服务器数仓(三 )EMR Serverless 操作要点、优化以及开放集成测试
引言 在数据驱动的世界中,企业正在寻求可靠且高性能的解决方案来管理其不断增长的数据需求.本系列博客从一个重视数据安全和合规性的 B2C 金融科技客户的角度来讨论云上云下混合部署的情况下如何利用亚马逊云 ...
- uniapp苹果开发用什么截屏
uniapp开发好苹果的app后,需要上架到app store connect后,用户才能使用app store进行安装. 在上架app store的过程中,却要求我们提供多种尺寸的app运行的设备截 ...
- MFC对话框程序:实现程序启动画面
MFC对话框程序:实现程序启动画面 对于比较大的程序,在启动的时候都会显示一个画面,以告诉用户程序正在加载,或者显示一些关于软件的信息,如Visual C++,Word, PhotoShop等.那么对 ...