【第17章】精通Vue CLI
精通Vue CLI
脚手架
致力于将Vue生态中的工具基础标准化,确保各种构建工具能够基于智能的默认配置平稳地衔接,这样开发者可以专注于开发应用的核心业务上,而不必花时间去纠结配置的问题。
一、脚手架的组件
Vue CLI有几个独立的部分——分别为CLI
、CLI服务
和CLI插件
。
CLI
CLI(@vue/cli)
是一个全局安装的NPM包,提供了终端里的Vue命令。
可以通过vue create
命令快速创建一个新项目的脚手架,或者直接通过vue serve
命令构建新项目的原型,还可以使用vue ui
命令通过一套图形化界面管理所有项目。
CLI服务
CLI服务(@vue/cli-service)
是一个开发环境依赖。它是一个NPM包,局部安装在每个@vue/cli创建的项目中。
CLI服务构建于webpack和webpack-dev-server之上
,包含如下内容:
-
加载其他CLI插件的核心服务
-
一个针对绝大部分应用优化过的内部的webpack配置
-
项目内部的vue-cli-service命令,提供
serve
、build
和inspect
命令
CLI插件
CLI插件是向Vue项目提供可选功能的NPM包,Vue CLI插件的名字以@vue/cli-plugin-(内建插件)
或vue-cli-plugin-(社区插件)
开头,容易使用。在项目内部运行vue-cli-serve命令时,它会自动解析并加载package.json中列出的所有CLI插件。
二、脚手架环境搭建
新版本的脚手架名称由vue-cli改成了@vue/cli。
如果已经全局安装了旧版本的vue-cli(1.x或2.x),需要通过npm uninstall vue-cli -g
卸载它
Vue CLI需要Node.js 8.9或更高版本,下载好后,在终端输入node -v
查看是否安装成功
三、安装脚手架
全局安装:npm install -g @vue/cli
安装之后,使用vue --version
检查其版本是否正确(4.x)
脚手架环境已经配置完成。
四、创建项目
4.1 使用命令
例如在F盘创建wiki-web
项目
- Step 1:首先打开创建项目的路径。
- Step 2:在DOS系统窗口中输入
vue create wiki-web
紧接着会提示配置方式,包括Vue 2默认配置,Vue 3默认配置和手动配置,使用方向键选中Vue 3默认配置
注意:项目名称不能大写,否则无法创建。
选中Vue 3默认配置后,直接按Enter键,即可创建wiki-web项目。
项目创建完成。
cd wiki-web
进入到项目中
使用脚手架提供的npm run serve
命令启动项目
项目启动成功!!!会提供本地的测试域名,只需要在浏览器中输入"http://localhost:8080/"即可打开项目。
Ctrl + C
关闭项目
4.2 使用图形化界面
除了使用命令行创建项目外,还可以通过vue ui
命令,以图形化界面创建和管理项目。
现在需要在F盘创建第二个项目wiki-web2
按步骤创建即可。
五、分析脚手架项目结构
下面分析几个关键的文件:src文件夹下的App.vue和main.js文件、public文件夹下的index.html文件。
App.vue
:是一个单文件组件,是所有组件的父组件,包含组件代码、模板代码和CSS样式规则
<template>
<img alt="Vue logo" src="./assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
main.js
:是程序入口的JavaScript文件,主要用于加载各种公共组件和项目所需要用的各种插件,并创建Vue的根实例App.vue
import { createApp } from 'vue' // 在Vue3.0新增Tree-shaking支持
import App from './App.vue' // 导入App组件
createApp(App).mount('#app') // 创建应用程序实例,加载应用程序实例的根组件
index.html
:该文件为项目的主文件,里面包含一个id为app的div元素,根组件实例会自动挂载到该元素上面
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<!-- 针对IE浏览器的特殊配置,含义是让IE浏览器以最高的渲染级别渲染页面 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 开启移动端的理想视口 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- 配置页签图标 <%= BASE_URL %>是public下的路径-->
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<!-- 配置网页标题 package.json中 -->
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<!-- 如果浏览器不支持js时,noscript标签中的元素就会被渲染 -->
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<!-- 容器 -->
<div id="app">
</div>
<!-- built files will be auto injected -->
</body>
</html>
整个流程分析:
1. 执行npm run serve 随后来到src目录找到main.js,引入了vue,引入了app.vue
2. 找到app.vue,随后又去执行HelloWorld.vue
3. main.js中随后关闭vue的生产提示,创建vue实例对象,然后将app组件放入容器中
4. 最后找到index.html,放入app容器中
六、配置文件package.json
package.json是JSON格式的NPM配置文件,定义了项目中所需要的各种模块,以及项目信息。
{
"name": "wiki-web", // 项目文件的名称
"version": "0.1.0", // 项目版本
"private": true, // 项目是否私有
"scripts": { // 值是一个对象,其中设置了项目生命周期各个环节所需要执行的执行
"serve": "vue-cli-service serve", // 执行 npm run serve,运行项目
"build": "vue-cli-service build", // 执行 npm run build,构建项目
"lint": "vue-cli-service lint" // 执行npm run lint,运行EXLint验证并格式化代码
},
"dependencies": {
"core-js": "^3.6.5",
"vue": "^3.0.0"
},
"devDependencies": { // 这里的依赖是用于开发环境的,不发布到生产环境
"@vue/cli-plugin-babel": "~4.5.9",
"@vue/cli-plugin-eslint": "~4.5.9",
"@vue/cli-service": "~4.5.9",
"@vue/compiler-sfc": "^3.0.0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {}
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
]
}
在只用NPM安装依赖的模块时,可以根据模块是否需要在生产环境下使用而选择附加-S或者-D参数。
等价于:
npm install element-ui -S
等价于
npm install element-ui -save
dependencies
表示开发和上线都需要的第三方包,用-S
devdependencies
表示仅在开发阶段需要的第三方包,用-D
本文作者:Ac_c0mpany丶
本文链接:https://www.cnblogs.com/keyongkang/p/16894179.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步