[Vue]vue cli (脚手架)(项目的创建与分析)


前言

系列文章目录:
[Vue]目录
老师的课件笔记,不含视频 https://www.aliyundrive.com/s/B8sDe5u56BU

笔记在线版: https://note.youdao.com/s/5vP46EPC

视频:尚硅谷Vue2.0+Vue3.0全套教程丨vuejs从入门到精通



1. Vue 脚手架(CLI)

Vue 脚手架(CLI)是 Vue 官方提供的标准化开发工具(开发平台)

Vue 脚手架(CLI)官网

vue cli的特点:

  1. 开箱即用
  2. 基于 webpack
  3. 功能丰富且易于扩展
  4. 支持创建 vue2 和 vue3 的项目

2. Vue CLI 的安装

vue-cli 是基于 Node.js 开发出来的工具,因此需要使用 npm 将它安装为全局可用的工具。

2.1 全局安装 Vue CLI

如果出现下载缓慢可以将下载地址配置为淘宝镜像:

npm config set registry https://registry.npm.taobao.org
npm i -g @vue/cli

2.2 检验是否安装成功

查看 Vue CLI 的版本,检验 Vue CLI 是否安装成功.

vue --version

或者

vue -V

能查看安装的 Vue CLI 的版本,即为安装成功。
在这里插入图片描述

3. 使用 Vue CLI 创建项目

Vue CLI 提供了创建项目的两种方式:

  1. 基于命令行的方式创建 vue 项目

    vue create 项目名称
    
  2. 基于可视化面板创建 vue 项目

    vue ui
    

3.1 基于命令行的方式创建 vue 项目

基于命令行的方式创建 vue 项目,可以使用 Vue CLI 提供的默认预设,也可以自己手动进行预设的配置。

如果之前有自己手动进行预设的配置,并且将配置的预设进行保存,也可以选择直接使用之前的预设配置。

在这里插入图片描述

3.1.1 使用 Vue CLI 提供的默认预设创建 vue2 项目

vue create vue_my_test1

键盘上下箭头按键进行选择,enter确定选择

在这里插入图片描述
在这里插入图片描述

进入创建的项目的目录

cd vue_my_test1

在这里插入图片描述

运行项目

npm run serve

在这里插入图片描述

访问项目页面

http://localhost:8080/

在这里插入图片描述

3.1.2 手动配置预设创建 vue2 项目

步骤1:在终端下运行 vue create 命令
vue create vue_my_test2

在这里插入图片描述

步骤2:选择要安装的功能

在这里插入图片描述

步骤3:选择 vue 的版本

在这里插入图片描述

由于选择安装的功能不同,接下来的选择个数会有所不同

在这里插入图片描述

步骤5:使用上下箭头选择如何存储插件的配置信息

通常选择把插件的配置信息存储到单独的文件

在这里插入图片描述

步骤6:是否将刚才的配置保存为预设

根据需要选择是否保存

在这里插入图片描述

项目创建完成

在这里插入图片描述

运行项目
 cd vue_my_test2
 npm run serve

在这里插入图片描述

在这里插入图片描述

3.2 停止项目运行

停止项目运行: ctrl + c

3.3 基于可视化面板创建 vue 项目

进入可视化面板

vue ui

在这里插入图片描述

3.3.1 创建 vue2 项目

在这里插入图片描述
在这里插入图片描述

这里只演示手动配置项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 分析脚手架创建的项目结构

以使用脚手架创建项目后自带的hello项目为例

4.1 项目文件目录

在这里插入图片描述

4.2 package.json

在这里插入图片描述

4.3 main.js

/* 
	该文件是整个项目的入口文件
*/
//引入Vue
import Vue from 'vue'
//引入App组件,它是所有组件的父组件
import App from './App.vue'

//关闭vue的生产提示
Vue.config.productionTip = false

//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  render: h => h(App),
// 指定vue控制的容器
}).$mount('#app')

4.3.1 render()

在main.js中使用render()函数将App组件放入容器中,是由于在脚手架中默认引入的vue不是完整的vue,而是缺少模板解析器的vue。

vue.js与vue.runtime.xxx.js的区别:
(1).vue.js是完整版的Vue,包含:核心功能+模板解析器。
(2).vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。

模板解析器是用于解析vue配置项中的template配置项。将vue中的模板解析器去除后,可以节省项目的占用空间,同时也更加符合逻辑,因为项目构建后已经是浏览器可以解析的html、css、js等文件,不再需要模板解析器。

在这里插入图片描述
render()的完整写法:

//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  // 简写,由于此函数不需要使用this,可以写成箭头函数
  // 然后再对箭头函数进行简写
  // render: h => h(App),
  
  // 完整写法
  render(createElement) {
    // render函数接收一个创建页面元素的createElement函数,
    // 用于创建页面元素
    // render()函数将创建的元素返回,再将其放入容器中
    return createElement(App)
  }
// 指定vue控制的容器
}).$mount('#app')
//创建Vue实例对象---vm
new Vue({
  // 将App组件放入容器中
  // 简写,由于此函数不需要使用this,可以写成箭头函数
  // 然后再对箭头函数进行简写
  // render: h => h(App),
  
  // 完整写法
  // render(createElement) {
    // render函数接收一个创建页面元素的createElement函数,
    // 用于创建页面元素
    // render()函数将创建的元素返回,再将其放入容器中
    // return createElement(App)
  // }

  render(createElement) {
    // 创建返回 <h1>hello world</h1>
    return createElement('h1', 'hello world')
  }
// 指定vue控制的容器
}).$mount('#app')

在这里插入图片描述

App组件外的其他组件使用模板<template>标签能够被放入页面,是由于vue脚手架为其配置了模板编译的第三方包。
在这里插入图片描述

4.4 App.vue

// 框架
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</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>

4.5 index.html

<!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文件夹所在的路径,防止项目部署后出现路径的错误-->
    <!-- 所以在该html文件中路径不使用 ./ ../ -->
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <!-- 网页的标题 -->
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <!-- 浏览器不支持js,页面会显示noscript标签中的内容;支持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>

<%= htmlWebpackPlugin.options.title %> 会到项目的package.json文件中寻找项目的name配置项
在这里插入图片描述

5. 修改默认配置

5.1 查看项目的默认配置

Vue 脚手架隐藏了所有 webpack 相关的配置,若想查看具体的 webpakc 配置,终端运行:

vue inspect > output.js

在这里插入图片描述

5.2 修改项目的默认配置

可以修改的配置项以及如何修改可以参考官网:
Vue CLI 官网 配置参考

在项目文件夹下新建 vue.config.js 文件,要修改的配置项都写在该文件中。vue脚手架会将修改的配置项与默认的配置项进行整合。
在这里插入图片描述

只要在 vue.config.js 文件中修改了配置项,就要重新启动项目。
vue.config.js 文件中不能什么配置都不写,要么不写不创建 vue.config.js 文件,要么创建了 vue.config.js 文件就要写配置项,至少一个。

5.2.1 修改入口文件名

// 使用 @vue/cli-service 提供的 defineConfig 帮手函数,以获得更好的类型提示
// vue.config.js
const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  // 选项
  pages: {
    index: {
      // 入口
      entry: 'src/my_main.js'
    }
  }
})

在这里插入图片描述

5.2.2 关闭代码语法检查

// 使用 @vue/cli-service 提供的 defineConfig 帮手函数,以获得更好的类型提示
// vue.config.js
const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  // 选项
  pages: {
    index: {
      // page 的入口
      entry: 'src/my_main.js'
    }
  },
  // 关闭语法检查
  lintOnSave: false
})
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值