笔记
了解
Vue脚手架 是Vue提供的标准化开发工具。
我们现在学的是Vue,注意本节讲的是 Vue脚手架。

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作者造成的,如果卡住了,我们按下回车即可。

安装完成之后,关闭cmd,再打开一次cmd。
切换到我们创建的项目的目录
如果想在桌面创建一个脚手架,那么我们就执行:
vue create 项目名
我们目前选择 Vue 2

回车,等待完成即可。最后就会在 vue_test目录中看到很多文件(脚手架 + hellowworld例子)
//用于翻译我们写的代码,并启动调试服务器。
npm run serve创建完成后,会在目录中给我们创建了 脚手架+例子HelloWorld
上面的内容来源视频教程。
我今天试了一下,截至 2025-10-26 的情况如下:


源码
本部分源码均由脚手架自动生成。
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')
