【Vue2手錄11】Vue腳手架(@vue_cli)詳解(環境搭建+項目開發示例)

一、前言:為什么需要 Vue 腳手架?

手動搭建 Vue 項目存在諸多痛點(原筆記提及):

  • 依賴管理復雜:需手動下載 Vue、Babel、Webpack 等工具,處理版本兼容性。
  • 配置繁瑣:Webpack 配置、ES6 轉碼、Vue 組件加載器等需手動編寫,易出錯。
  • 開發體驗差:缺乏代碼提示、自動補全,CSS 無組件級隔離。

Vue 腳手架(@vue/cli)是官方提供的「環境搭建工具」,可 一鍵完成依賴安裝、配置生成、項目初始化,將手動幾小時的工作縮短到幾分鐘,是企業級 Vue 項目的標準開發方式。

二、環境準備(核心依賴:Node.js)

Vue 腳手架基于 Node.js 運行,需先安裝 Node.js(自帶 npm 包管理工具)。

2.1 Node.js 安裝步驟

  1. 下載 Node.js
    訪問 Node.js 官網,選擇 LTS 版本(長期支持版,穩定),根據系統(Windows/macOS)下載安裝包。

  1. 安裝過程
    • Windows:雙擊安裝包,全程默認下一步,務必勾選「Add to PATH」(自動配置環境變量,關鍵!)。

- macOS:雙擊 `.pkg` 文件,按提示完成安裝(默認配置環境變量)。
  1. 驗證安裝
    打開命令行工具(Windows:cmd/PowerShell;macOS:終端),輸入以下命令,顯示版本號即安裝成功:
node -v  # 查看 Node 版本(如 v18.16.0)
npm -v   # 查看 npm 版本(如 v9.5.1)

2.2 環境變量問題(常見坑)

  • 問題現象:命令行輸入 node -v 提示「不是內部或外部命令」。
  • 原因:安裝時未勾選「Add to PATH」,Node.js 路徑未加入系統環境變量。
  • 解決方案
    1. Windows:手動添加環境變量(右鍵「此電腦」→「屬性」→「高級系統設置」→「環境變量」→「Path」→ 添加 Node 安裝路徑,如 C:\Program Files\nodejs\)。
    2. 重啟命令行工具(環境變量修改后需重啟生效)。

三、npm 包管理工具(基礎必備)

npm(Node Package Manager)是 Node.js 自帶的包管理工具,用于下載、管理前端依賴(如 Vue、jQuery、axios 等)。

3.1 npm 核心概念

  • 中央倉庫:npm 官方維護的代碼庫,存儲全球開源的 JavaScript 包(無需手動到各官網下載)。
  • 依賴目錄:執行 npm install 時,包會下載到項目根目錄的 node_modules 文件夾(自動創建)。
  • 版本控制:通過 package.jsonpackage-lock.json 管理依賴版本,確保項目在不同環境下依賴一致。

3.2 npm 常用命令(實戰高頻)

命令作用示例
npm init初始化項目,生成 package.json 文件npm init(交互式配置)/ npm init -y(快速默認配置)
npm install <包名>安裝依賴到項目(局部安裝)npm install vue(安裝 Vue)
npm install -g <包名>全局安裝依賴(所有項目可用)npm install -g @vue/cli(安裝 Vue 腳手架)
npm uninstall <包名>卸載項目依賴npm uninstall vue(卸載 Vue)
npm run <腳本名>執行 package.json 中的腳本npm run serve(啟動 Vue 項目)

3.3 關鍵配置文件(理解核心)

3.3.1 package.json(項目說明書)
  • 生成方式npm init 或腳手架自動生成。
  • 核心作用
    1. 記錄項目元數據(名稱、版本、描述、作者)。
    2. 記錄項目依賴(dependencies:生產依賴;devDependencies:開發依賴)。
    3. 定義項目腳本(如 scripts: { "serve": "vue-cli-service serve" })。
  • 示例結構
{"name": "my-vue-project",  // 項目名稱"version": "1.0.0",        // 項目版本"dependencies": {          // 生產依賴(項目運行必需)"vue": "^2.6.14"         // Vue 版本},"scripts": {               // 項目腳本"serve": "vue-cli-service serve",  // 啟動開發服務器"build": "vue-cli-service build"   // 打包項目}
}
3.3.2 package-lock.json(版本鎖定文件)
  • 生成方式:執行 npm install 時自動生成,無需手動修改。
  • 核心作用
    鎖定所有依賴的 精確版本(包括間接依賴),避免后續安裝時因版本更新導致項目報錯(解決「我這能跑,你那跑不了」的問題)。
  • 注意:提交代碼時需將此文件一并提交到 Git,確保團隊依賴版本一致。

四、Vue 腳手架(@vue/cli)實戰

4.1 腳手架全局安裝

腳手架需 全局安裝(一次安裝,所有項目可用),命令如下:

npm install -g @vue/cli

  • 驗證安裝:輸入以下命令,顯示版本號即成功(如 @vue/cli 5.0.8):
vue --version  # 或 vue -V(大寫 V)

4.2 用腳手架創建 Vue 2 項目(關鍵步驟)

4.2.1 步驟 1:選擇項目目錄

打開命令行,切換到目標文件夾(如 D:\projects),命令如下:

# Windows:切換到 D 盤
D:
# 進入 projects 文件夾
cd D:\projects
# macOS:進入用戶目錄下的 projects 文件夾
cd ~/projects
  • 快捷技巧:在資源管理器中打開目標文件夾,地址欄輸入 cmd(Windows)或 terminal(macOS),可直接定位到當前目錄。
4.2.2 步驟 2:創建項目

執行以下命令,my-vue2-project 為項目名稱(必須英文,禁止中文/特殊符號):

vue create my-vue2-project
4.2.3 步驟 3:選擇項目配置
  1. 選擇預設
    腳手架提供 3 種預設,初學者建議手動配置(Manually select features),便于理解項目結構:
? Please pick a preset: (Use arrow keys)
? Default ([Vue 3] babel, eslint)Default ([Vue 2] babel, eslint)Manually select features  # 手動選擇配置

  1. 手動選擇配置項
    空格鍵 選中/取消,選中以下 2 項即可(其他項后期可按需添加):
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
?? Babel  # 必選,用于 ES6 轉 ES5(兼容舊瀏覽器)? TypeScript  # 可選,TypeScript 支持? Progressive Web App (PWA) Support  # 可選,PWA 支持? Router  # 可選,路由(后期可裝)? Vuex  # 可選,狀態管理(后期可裝)? CSS Pre-processors  # 可選,CSS 預處理器(如 Sass)? Linter / Formatter  # 可選,代碼格式檢查(初學者建議不選,避免嚴格報錯)? Unit Testing  # 可選,單元測試? E2E Testing  # 可選,端到端測試

  1. 選擇 Vue 版本
    明確選擇 Vue 2(課程重點):
? Choose a version of Vue.js that you want to start the project with (Use arrow keys)3.x
? 2.x

注:如果需要選擇ESLint(代碼質量檢查)

  1. 后續配置
    • 詢問「Where do you prefer placing config for Babel…」:選擇「In dedicated config files」(單獨生成配置文件,清晰)。
    • 詢問「Save this as a preset for future projects?」:選擇「n」(不保存為預設,后續可靈活配置)。

4.2.4 步驟 4:啟動項目
  1. 進入項目目錄
cd my-vue2-project
  1. 啟動開發服務器
npm run serve
  1. 訪問項目
    命令行顯示以下信息,打開瀏覽器訪問 http://localhost:8080,即可看到 Vue 歡迎頁面:
DONE  Compiled successfully in 3000msApp running at:
- Local:   http://localhost:8080/
- Network: http://192.168.1.100:8080/Note that the development build is not optimized.
To create a production build, run npm run build.
注:啟動報錯提示的排查步驟

首先使用管理員身份啟動VSCode,重啟軟件觀察是否正常運行。

要解決 PowerShell 中 npm 無法識別的問題,需分步驟排查 Node.js 安裝狀態PowerShell 執行策略,以下是詳細解決方案:

驗證 Node.js 是否正確安裝

npm 是 Node.js 的包管理工具,若 Node.js 未安裝或環境變量配置錯誤,會導致 npm 命令失效。

  1. 打開新的 PowerShell 窗口(避免舊會話緩存問題)。
  2. 執行以下命令,檢查 Node.js 和 npm 是否安裝成功:
node -v   # 檢查 Node.js 版本(如輸出 v20.15.0)
npm -v    # 檢查 npm 版本(如輸出 10.5.0)
- **如果命令輸出版本號**:說明 Node.js 安裝正常,問題出在 PowerShell 執行策略(繼續看步驟 2)。  
- **如果命令報錯**(如“不是內部或外部命令”):說明 Node.js 未安裝或環境變量未配置(跳轉到步驟 3)。
修復 PowerShell 執行策略(Node.js 已安裝但 npm 仍報錯)

Windows PowerShell 默認禁止運行未簽名腳本(如 npm.ps1),需修改執行策略。

  1. 以管理員身份打開 PowerShell
    • 按下 Win + X,選擇「Windows PowerShell (管理員)」或「終端 (管理員)」。或者在開始菜單中搜索PowerShell并打開。

  1. 查看當前執行策略
Get-ExecutionPolicy
- 若輸出 `Restricted` 或 `AllSigned`,說明執行策略禁止運行腳本。
  1. **修改執行策略為 **RemoteSigned(允許本地腳本運行,兼顧安全性):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- 按提示輸入 `Y` 確認更改。

  1. 重啟 PowerShell
    關閉所有 PowerShell 窗口,重新打開普通 PowerShell(無需管理員),再次嘗試 npm run serve

重新安裝 Node.js(Node.js 未安裝或環境變量錯誤)

node -vnpm -v 均報錯,說明 Node.js 安裝失敗或環境變量未配置。

  1. 卸載舊 Node.js(若已安裝但配置錯誤):
    • 打開「控制面板 → 程序和功能」,找到 Node.js 并卸載。
    • 刪除安裝目錄(如 C:\Program Files\nodejs\)和 npm 緩存(C:\Users\你的用戶名\AppData\Roaming\npm)。
  2. 重新下載并安裝 Node.js LTS 版
    • 訪問 Node.js 官網,下載 LTS 版本(長期支持版,如 18.16.0)。
    • 安裝時務必勾選“Add to PATH”選項(自動配置環境變量,關鍵步驟!)。
  3. 驗證安裝
    重啟終端,執行 node -vnpm -v,若輸出版本號則安裝成功。

額外建議:使用 Git Bash 或 CMD 臨時規避

若 PowerShell 問題仍未解決,可臨時切換到其他終端工具:

  • Git Bash:需安裝 Git,終端對 npm 支持更友好。
  • CMD:Windows 自帶的命令提示符,執行 npm run serve 通常不會有執行策略限制。

腳手架啟動后默認頁面

4.3 腳手架項目結構解析(核心目錄/文件)

腳手架生成的項目結構清晰,核心開發目錄為 src,其他多為配置/依賴文件:

目錄/文件作用
node_modules/存儲項目所有依賴(npm 安裝的包),體積大,無需提交 Git(.gitignore 已排除)
public/靜態資源目錄(不被 Webpack 處理),如入口 HTML、圖標
├─ index.html項目入口 HTML,Vue 實例會掛載到 #app 元素上
└─ favicon.ico網站圖標
src/核心開發目錄,所有業務代碼在此編寫
├─ assets/靜態資源目錄(被 Webpack 處理),如圖片、CSS 文件
├─ components/自定義組件目錄(如 HelloWorld.vue
├─ App.vue根組件(項目最頂層組件,包含其他子組件)
└─ main.js項目入口 JS,初始化 Vue 實例并掛載到 DOM
package.json項目說明書,記錄依賴和腳本
package-lock.json依賴版本鎖定文件
.gitignoreGit 忽略文件配置(如 node_modules/dist/ 不提交 Git)
4.3.1 核心文件詳解
  1. src/main.js(入口 JS)
    初始化 Vue 實例,掛載到 public/index.html#app 元素上:
import Vue from 'vue'  // 引入 Vue
import App from './App.vue'  // 引入根組件 AppVue.config.productionTip = false  // 關閉生產環境提示new Vue({render: h => h(App)  // 將 App 組件渲染到 DOM
}).$mount('#app')  // 掛載到 #app 元素(等價于 el: '#app')
  1. src/App.vue(根組件)
    Vue 單文件組件(.vue),包含 template(HTML)、script(JS)、style(CSS)三部分:
<template><!-- 組件 HTML 結構(必須有且只有一個根元素) --><div id="app"><img src="./assets/logo.png"><!-- 引入子組件 HelloWorld --><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>/* 組件樣式(scoped 表示樣式僅作用于當前組件,避免污染) */#app {font-family: Avenir, Helvetica, Arial, sans-serif;text-align: center;color: #2c3e50;margin-top: 60px;}
</style>
  1. src/components/HelloWorld.vue(子組件)
    自定義子組件,可在根組件 App.vue 中復用,結構與 App.vue 一致。

五、常見問題與解決方案(實戰避坑)

5.1 腳手架安裝后 vue 命令報錯(Windows)

  • 問題現象:PowerShell 輸入 vue --version 提示「無法加載文件 … vue.ps1,因為在此系統上禁止運行腳本」。
  • 原因:Windows PowerShell 執行策略限制(默認禁止運行未簽名腳本)。
  • 解決方案
    1. 改用 cmd 命令行(Windows 自帶,無此限制)。
    2. 或用管理員身份運行 PowerShell,執行以下命令修改策略:
Set-ExecutionPolicy RemoteSigned  # 按 Y 確認

5.2 啟動項目報錯「Port 8080 is already in use」

  • 問題現象npm run serve 提示 8080 端口被占用。
  • 原因:其他程序(如 Tomcat、其他 Vue 項目)正在使用 8080 端口。
  • 解決方案
    1. 關閉占用端口的程序。
    2. 或修改 Vue 項目端口:在 package.jsonscripts 中添加 --port 8081
"scripts": {"serve": "vue-cli-service serve --port 8081",  // 改用 8081 端口"build": "vue-cli-service build"
}

5.3 VS Code 終端無法識別 vue 命令

  • 問題現象:VS Code 內置終端輸入 vue --version 提示「不是內部或外部命令」。
  • 原因:VS Code 未加載最新的環境變量(安裝 Node.js 或腳手架后未重啟 VS Code)。
  • 解決方案
    1. 完全關閉 VS Code 并重新打開。
    2. 或在 VS Code 終端中執行 source ~/.bash_profile(macOS)或 refreshenv(Windows)刷新環境變量。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/97925.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/97925.shtml
英文地址,請注明出處:http://en.pswp.cn/web/97925.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自簽發、CA機構簽發、SSH、SCP、RSYNC,SUDO詳解

一、為什么&#xff1f; 1. 自建CA為什么比Lets Encrypt強&#xff1f; 不能把CA放公網&#xff01;Lets Encrypt是給公網服務用的&#xff08;比如10.0.0.30的Web服務&#xff09;&#xff0c;但內網服務&#xff08;比如OpenVPN&#xff09;必須用自簽CA。 CA私鑰必須物理隔…

【Python】Python解決阿里云DataWorks導出數據1萬條限制的問題

【Python】Python解決阿里云DataWorks導出數據1萬條限制的問題一、前言二、腳本功能概述三、核心代碼解析**1. 環境配置與安全設置****2. 用戶配置區****3. 數據清洗函數****4. 核心邏輯**四、完整代碼演示五、總結一、前言 在日常數據分析工作中&#xff0c;團隊經常需要從阿…

計算機網絡(一)基礎概念

本篇文章為計算機網絡相關知識點整理及擴展 基于B站計算機網絡課程&#xff1a;https://www.bilibili.com/video/BV1p69tYZEvN/?spm_id_from333.1007.top_right_bar_window_history.content.click 如有錯誤&#xff0c;還望大家不吝指正 URL&#xff08;統一資源定位符&…

Git的工作區域和文件結構

Git的工作區域和文件結構 1. Git的工作區域2. Git的文件結構 打開.git文件&#xff0c;.git的文件結構如下&#xff1a; objects 存放已經提交的文件&#xff0c;也就是使用 git commit 進行操作后的文件。 index 存放已暫存的文件&#xff0c;也就是使用了 git add 進行操作后…

前端開發易錯易忽略的 HTML 的 lang 屬性

前言本文主要記錄&#xff1a;前端開發中&#xff0c;一個本人錯了好幾年&#xff0c;看似無關緊要的小錯誤&#xff1a;HTML 的 lang 屬性設置。正文HTML 的 lang 屬性在HTML中&#xff0c;lang屬性用于指定文檔的語言。這對于搜索引擎優化&#xff08;SEO&#xff09;、屏幕閱…

【GD32】 GPIO 超詳細總結 (江科大風格課件版)

GD32 GPIO 超詳細總結 (江科大風格課件版)第一部分&#xff1a;GPIO 是什么&#xff1f; 名稱&#xff1a;GPIO General Purpose Input/Output (通用輸入輸出口)作用&#xff1a;MCU與外部世界交互的橋梁。通過程序控制引腳輸出高、低電平&#xff0c;或者讀取引腳的電平狀態。…

《嵌入式硬件(八):基于IMX6ULL的點燈操作》

一、IMX6ULL啟動代碼.global _start_start:ldr pc, _reset_handlerldr pc, _undefine_handlerldr pc, _svc_handlerldr pc, _prefetch_abort_handlerldr pc, _data_abort_handlerldr pc, _reserved_handlerldr pc, _irq_handlerldr pc, _fiq_handler_undefine_handler:ldr pc, …

Spring Boot 調度任務在分布式環境下的坑:任務重復執行與一致性保證

前言在實際業務開發中&#xff0c;調度任務&#xff08;Scheduled Task&#xff09; 扮演著重要角色&#xff0c;例如&#xff1a;定時同步第三方數據&#xff1b;定時清理過期緩存或日志&#xff1b;定時發送消息或報告。Spring Boot 提供了非常方便的 Scheduled 注解&#xf…

剖析ReAct:當大模型學會“邊想邊做”,智能體的進化之路

你是否曾驚嘆于大語言模型&#xff08;LLM&#xff09;強大的推理能力&#xff0c;卻又對其“紙上談兵”、無法真正與世界交互而感到遺憾&#xff1f;你是否好奇&#xff0c;如何讓AI不僅能“說”&#xff0c;更能“做”&#xff0c;并且在做的過程中不斷思考和調整&#xff1f…

小型無人機傳感器仿真模型MATLAB實現方案

一、系統架構設計 無人機傳感器仿真模型需集成多物理場建模與數據融合模塊&#xff0c;典型架構包含&#xff1a; 動力學模型&#xff1a;六自由度剛體運動方程傳感器模型&#xff1a;IMU/GNSS/視覺/氣壓計數學建模數據融合層&#xff1a;卡爾曼濾波/EKF算法實現環境交互模塊&a…

hadoop集群

ssh-keygen -t rsassh-copyid 用戶名遠程服務器地址start-dfs.sh chown [選項] 新所有者[:新所屬組] 目標文件/目錄常用選項&#xff1a;-R&#xff1a;遞歸修改目錄下所有文件和子目錄的所有者&#xff08;處理目錄時常用&#xff09;-v&#xff1a;顯示修改過程的詳細信息-c&…

大模型入門實踐指南

大模型入門教程:從概念到實踐 大模型(Large Language Model, LLM)是當前人工智能領域的核心技術,其本質是通過大規模數據訓練、具備復雜語言理解與生成能力的深度學習模型。本教程將從基礎概念出發,帶你理解大模型的核心邏輯,并通過可直接跑通的代碼示例,快速上手大模型…

貓頭虎開源AI分享:一款CSV to Chat AI工具,上傳CSV文件提問,它可以即時返回統計結果和可視化圖表

貓頭虎開源AI分享&#xff1a;一款CSV to Chat AI工具&#xff0c;上傳CSV文件提問&#xff0c;它可以即時返回統計結果和可視化圖表 摘要 本文將詳細介紹一款開源工具——CSV to Chat AI&#xff0c;它允許用戶上傳CSV文件并通過自然語言提問&#xff0c;系統會即時返回統計…

洛谷P9468 [EGOI 2023] Candy / 糖果題解

[EGOI 2023] Candy / 糖果 思路 NNN 這么小基本就是瞎打的 DP 了。 設 dpi,jdp_{i,j}dpi,j? 為操作 jjj 次后前 iii 項的和最大是多少。 考慮轉移&#xff0c;我們可以枚舉 iii 并考慮將其移動到 ppp 位置&#xff0c;總共操作 kkk 次&#xff0c;那么就有 dpp,kmin?(dpp,…

AI智能體(Agent)大模型入門【3】--基于Chailit客服端實現頁面AI對話

目錄 前言 安裝chailint 創建中文語言環境 創建chailint頁面客戶端 前言 本篇章將會基chailit框架實現頁面進行AI對話。 若沒有自己的本地模型對話&#xff0c;需要查看專欄內的文章&#xff0c;或者點擊鏈接進行學習部署 AI智能體&#xff08;Agent&#xff09;大模型入…

【高并發內存池——項目】定長內存池——開胃小菜

提示&#xff1a;高并發內存池完整項目代碼&#xff0c;在主頁專欄項目中 文章目錄 提示&#xff1a;高并發內存池完整項目代碼&#xff0c;在主頁專欄項目中 先設計一個定長的內存池 一、為什么需要定長內存池&#xff1f; &#x1f3e2; 傳統內存分配的痛點 &#x1f3ed; 內…

6-獲取磁盤分區信息

觀察文件 獲取server端電腦里面存在哪些盤符 int MakeDriveInfo() { //1>A 2>B &#xff08;原本屬于軟盤的 &#xff09;3>C ... 26>Zstd::string result;for (int i 1; i < 26; i) { //讓其循環if (_chdrive(i) 0) //改變當前的驅動,_chdrive函數(c和c中)應…

每天認識一個電子器件之LED燈

LED選型核心參數一覽表參數類別關鍵參數說明 & 為什么重要基本電氣參數正向電壓 (Vf)LED正常發光時兩端的電壓降。必須匹配您的電路電壓。紅/黃光約1.8-2.2V&#xff0c;藍/綠/白光約2.8-3.6V。正向電流 (If)LED正常發光時所需的電流。決定了LED的亮度&#xff0c;必須用電…

Spring Boot 集成 Flowable 7.1.0 完整教程

一、引言 在企業級應用開發中&#xff0c;工作流管理是不可或缺的一部分。從簡單的請假審批到復雜的業務流程&#xff0c;工作流引擎能夠顯著提升系統的靈活性和可維護性。??Flowable?? 作為一個輕量級、基于 Java 的開源工作流引擎&#xff0c;完美支持 ??BPMN 2.0??…

uniapp離線打包安卓apk詳細教程,從HbuilderX新建項目到Android Studio詳細配置(一)

目錄 一、基礎離線打包&#xff0c;無引入模塊&#xff0c;無原生插件 1. HbuilderX新建項目&#xff0c;開發者后臺申請證書和離線key 2.HbuilderX生成本地包 二、Android Studio配置 1.下載離線SDK&#xff0c;解壓&#xff0c;SDK版本需要和HbuilderX 版本一致&#xf…