笔记

了解

Vue脚手架 是Vue提供的标准化开发工具。

我们现在学的是Vue,注意本节讲的是 Vue脚手架。

061_创建Vue脚手架 - 图1

Vue 脚手架

官网地址: https://cli.vuejs.org/zh/

Vue 脚手架 纯英文: Vue CLI //CLI = Command Line Interface 命令行接口工具(这个叫法 太官方,我们俗称 脚手架)

安装

安装前,需要把 npm地址 配置为 淘宝镜像(加速下载):

npm config set registry https://registry.npm.taobao.org

然后全局安装 Vue CLI:

npm install -g @vue/cli

可能在安装过程中会出一些警告,但是这些警告是Vue作者造成的,如果卡住了,我们按下回车即可。

061_创建Vue脚手架 - 图2

安装完成之后,关闭cmd,再打开一次cmd。

切换到我们创建的项目的目录

如果想在桌面创建一个脚手架,那么我们就执行:

vue create 项目名

061_创建Vue脚手架 - 图3


我们目前选择 Vue 2

061_创建Vue脚手架 - 图4


回车,等待完成即可。最后就会在 vue_test目录中看到很多文件(脚手架 + hellowworld例子)

//用于翻译我们写的代码,并启动调试服务器。

npm run serve

创建完成后,会在目录中给我们创建了 脚手架+例子HelloWorld

上面的内容来源视频教程。
我今天试了一下,截至 2025-10-26 的情况如下:

061_创建Vue脚手架 - 图5


061_创建Vue脚手架 - 图6

源码

本部分源码均由脚手架自动生成。

components\HelloWorld.vue

<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <p>
      For a guide and recipes on how to configure / customize this project,<br>
      check out the
      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
    </p>
    <h3>Installed CLI Plugins</h3>
    <ul>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
      <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
    </ul>
    <h3>Essential Links</h3>
    <ul>
      <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
      <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
      <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
      <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
      <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
    </ul>
    <h3>Ecosystem</h3>
    <ul>
      <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
      <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
      <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
      <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
    </ul>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>

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>

main.js

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')