Webpack 搭建 Vue3 腳手架詳細步驟

創建一個新的 Vue 項目

1)初始化項目目錄

新建一個文件夾,或者使用以下指令

mkdir webpack-vue_demo
cd webpack-vue_demo

2)初始化 npm 項目

npm init -y

3)安裝 vue 和 webpack 相關依賴

npm install vue vue-loader vue-template-compiler webpack webpack-cli webpack-dev-server --save

如果需要支持 ES6+ 語法,還需要安裝相應的 Babel 依賴:

npm install @babel/core @babel/preset-env babel-loader --save-dev

安裝完成后,package.json 文件中會包含這些依賴:

在這里插入圖片描述

設置項目結構

PS:以下文件均使用 Vue3 語法

1)創建項目文件

在 node_modules 同級創建 src 文件夾,src 里面創建 main.js、App.vue、index.html

在這里插入圖片描述

2)編寫簡單的 vue 組件(src/App.vue)

<template><div id="app"><img alt="Vue logo" src="./assets/green.png"><h1>{{ message }}</h1></div>
</template><script>
import { ref } from 'vue'export default {name: 'App',setup() {const message = ref('Hello Vue!')return {message}}
}
</script><style>
#app {max-width: 300px;margin: auto;
}
</style>

3)編寫入口文件(src/main.js)

import { createApp } from 'vue'
import App from './App.vue'
import './assets/green.png'createApp(App).mount('#app')

4)創建 html 模板(src/index.html)

<script src="/bundle.js"></script>:告訴瀏覽器從服務器加載并執行bundle.js文件,這個文件是 Webpack 打包應用后生成的,包含了整個應用代碼。在開發過程中,Webpack Dev Server 會提供這個文件。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><title>Vue App</title>
</head>
<body><div id="app"></div><script src="/bundle.js"></script>
</body>
</html>

配置 Webpack

1)創建 Webpack 配置文件

與 package.json 同級創建 webpack.config.js,有些依賴還未安裝的需要安裝,比如 vue-style-loader、css-loader

npm install vue-style-loader css-loader --save-dev
const path = require('path')
const { VueLoaderPlugin } = require('vue-loader')module.exports = {entry: './src/main.js',output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),},module: {rules: [{test: /.vue$/,loader: 'vue-loader'},{test: /.js$/,exclude: /node_modules/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}},{test: /.css$/,use: ['vue-style-loader','css-loader']},{test: /.(png|svg|jpg|jpeg|gif)$/i,type: 'asset/resource'}]},plugins: [new VueLoaderPlugin()],devServer: {static: {directory: path.resolve(__dirname, 'src'), // 從src提供靜態文件},}
}

2)添加構建和開發腳本

在 package.json 文件的 scripts 中添加:

  "scripts": {"build": "webpack --mode production","dev": "webpack serve --mode development"},

在這里插入圖片描述

運行和構建項目

1)運行項目

npm run dev

運行成功如下圖所示,通過訪問地址即可看見頁面

在這里插入圖片描述

2)構建項目

npm run build

構建成功后會生成 dist:

在這里插入圖片描述

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

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

相關文章

【Git 誤操作恢復指南】

Git 誤操作恢復指南 適用場景&#xff1a;git reset --hard 誤操作后的緊急恢復 風險等級&#xff1a;&#x1f534; 高風險 - 可能導致代碼丟失 恢復成功率&#xff1a;95%&#xff08;CI/CD 環境下&#xff09; &#x1f6a8; 緊急情況概述 問題描述 在項目開發過程中&am…

Go語言 逃 逸 分 析

逃逸分析是什么 逃逸分析是編譯器用于決定變量分配到堆上還是棧上的一種行為。一個變量是在堆上分配&#xff0c;還是在棧上分配&#xff0c;是經過編譯器的逃逸分析之后得出的“結論”。Go 語言里編譯器的逃逸分析&#xff1a;它是編譯器執行靜態代碼分析后&#xff0c…

LeetCode算法日記 - Day 1: 移動零、復寫零

目錄 1. 移動零 1.1 思路解析 1.2 代碼實現 2. 復寫零 2.1 思路解析 2.2 代碼實現 1. 移動零 283. 移動零 - 力扣&#xff08;LeetCode&#xff09; 給定一個數組 nums&#xff0c;編寫一個函數將所有 0 移動到數組的末尾&#xff0c;同時保持非零元素的相對順序。 請…

Odoo:免費開源的醫療器械行業解決方案

開源智造Odoo專家團隊深知&#xff0c;作為醫療器械制造商&#xff0c;您的成功取決于制造卓越產品的能力。您必須遵循嚴密控制的流程&#xff0c;開發和制造出達到最嚴格質量標準的產品。“開源智造Odoo醫療器械行業解決方案”是為醫療器械制造商設計的全球企業資源規劃(ERP)軟…

Redis鍵值對中值的數據結構

前言 前面我們已經介紹了Redis的鍵值對存儲管理的底層數據結構。如果不清楚的同志可以看我前面的博客 Redis數據庫存儲鍵值對的底層原理-CSDN博客 下面,我們來看一下Redis鍵值對中值的數據結構有那些叭 Redis常見的5種數據類型 string …

MySQL自動化安裝工具-mysqldeploy

功能 可在linux系統上安裝 mysql5.5/5.6/5.7/8.0/8.4 版本的 MySQL&#xff0c;可以初始化多實例 MySQL。 碼云: https://gitee.com/hh688/mysqldeploy guithub: https://github.com/hhkens/mysqldeploy 限制 僅在 centos7 環境進行測試&#xff0c;后期可能支持更多系統。 此程…

簡要探討大型語言模型(LLMs)的發展歷史

關注大型語言模型(LLMs) 簡要探討語言模型的發展歷史 理解Transformer架構的基本元素和注意力機制 了解不同類型的微調方法 語言模型的大小之分 在語言模型領域,“小”和“大”是相對概念。幾年前還被視為“巨大”的模型,如今已被認為相當小。該領域發展迅猛,從參數規模為…

Java試題-選擇題(2)

Java試題-選擇題(2) 題目 下列語句創建對象的總個數是: String s=“a”+“b”+"c”+“d”+"e” A.4 B.2 C.3 D.1 關于下面的程序段的說法正確的是()? File file1=new File(“e:\xxx\yyy\zzz");file1.mkdir(); A.如目錄e:\xxx\yyy\不存在,程序會拋出FileN…

揭秘動態測試:軟件質量的實戰防線

動態測試概述&#xff08;擴展版&#xff09; 目錄 動態測試概述&#xff08;擴展版&#xff09; 一、動態測試的定義與重要性 ? 二、動態測試類型 &#x1f50d; &#xff08;一&#xff09;功能測試 &#x1f9e9; &#xff08;二&#xff09;非功能測試 &#x1f4ca…

機器學習①【機器學習的定義以及核心思想、數據集:機器學習的“燃料”(組成和獲取)】

文章目錄先言一、什么是機器學習1.機器學習的定義以及核心思想2.機器學習的四大類型2.1監督學習&#xff08;Supervised Learning&#xff09;2.2半監督學習&#xff08;Midsupervised Learning&#xff09;2.3無監督學習&#xff08;Unsupervised Learning&#xff09;2.4強化…

GaussDB 數據庫架構師(十二) 資源規劃

1 硬件和軟件要求 1&#xff09;硬件配置示例 硬件配置示例設備類型 設備型號 數量 備注 計算節點 CPU&#xff1a; 2*64 Cores&#xff0c;Kunpeng 920 內存&#xff1a;32*32GB 系統盤&#xff1a;2*960GB SATA SSD 數據盤&#xff1a;24*960GB SATA SSD RAID卡&#x…

Linux系統文件與目錄內容檢索(Day.2)

一、文件和目錄內容檢索處理命令1、uniq去重語法uniq [options] [input_file [output_file]]選項選項作用-c進行計數&#xff0c;并刪除文件中重復出現的行-d僅顯示連續的重復行-u僅顯示出現一次的行-i忽略大小寫案例1、刪除輸入文件中的重復行sort input.txt | uniq2、僅顯示重…

如何選擇一個容易被搜索引擎發現的域名?

在這個數字化時代&#xff0c;域名不僅是企業線上身份的標識&#xff0c;更是影響網站搜索曝光率的關鍵因素。一個精心挑選的域名能為品牌帶來更多自然流量&#xff0c;下面我們就來探討幾個實用技巧。一、簡潔易記是王道好域名首先要讓人過目不忘。想象一下&#xff0c;當用戶…

樹形DP進階:結合dfn序的線性化樹問題求解技巧

樹形DP進階&#xff1a;結合dfn序的線性化樹問題求解技巧一、dfn序與樹的線性化1.1 dfn序的基本概念1.2 樹形DP結合dfn序的優勢二、核心應用&#xff1a;子樹區間的DP優化2.1 子樹權值和的快速查詢與更新問題描述結合dfn序的解法代碼實現&#xff08;前綴和版本&#xff09;優化…

九、Maven入門學習記錄

Maven介紹Maven作用統一項目結構Maven安裝&#xff08;注意配置阿里云私服時url要跟換成最新的&#xff09;IDEA創建Meavn項目Maven坐標介紹IDEA導入Maven項目依賴配置依賴傳遞依賴傳遞-排除依賴依賴范圍生命周期生命周期-執行特定生命周期生命周期-總結

中標喜訊 | 安暢檢測再下一城!斬獲重慶供水調度測試項目

安暢檢測在第三方檢測領域持續深耕&#xff0c;再傳捷報&#xff01;公司于2025年7月30日正式收到中標通知&#xff0c;成功拿下重慶水資源產業股份有限公司 “重慶西部科學城多水廠分區分壓供水優化調度研究項目&#xff08;軟件測試標段&#xff09;”。 此次中標不僅是市場…

銀河麒麟V10一鍵安裝DM8的腳本及高階運維SQL分享

介質下載地址名稱網址銀河麒麟高級服務器操作系統V10&#xff08;SP3&#xff09;用戶手冊https://www.kylinos.cn/support/document/60.htmlDM8 安裝手冊https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.htmlDM 數據庫安裝&#xff08;Linux安裝&#xff09;h…

cobalt strike(CS)與Metasploit(MSF)聯動

CS —> MSF首先cs上創建一個http的外部監聽器。此時在CS服務端查看監聽的ip&#xff0c;發現并沒有開啟&#xff0c;需要到成功移交會話后才會啟動。netstat -tunlp | grep 7000在MSF中使用handler模塊&#xff0c;配置監聽。注意&#xff1a;目標機器的地址是rhost&#xf…

C# 類型

原文&#xff1a;C# 類型_w3cschool C#類型 類型定義值的藍圖。有不同的操作與不同類型相關聯。 在下面的示例中&#xff0c;我們使用兩個類型為int的常量&#xff0c;值為2 和 3。 static void Main() {int x 2 * 3;Console.WriteLine (x); } int 是一個表示整數值的構建…

確保TDesign Vue Next中t-color-picker組件在彈出顏色拾取面板時保證該面板不抖動方法參考

使用TDesign Vue Next中的組件t-color-picker時&#xff0c;在顏色面板彈出后&#xff0c;如果修改里面的顏色&#xff0c;發現這個顏色拾取面板會隨著顏色的改變位置不斷抖動&#xff0c;該問題由顯示顏色的數值文本的長度變化引起&#xff0c;因此要覆蓋組件內部顏色值文本的…