webpack配置vue3项目


声明:本文章采用node的包管理工具和webpack。

一、项目需要的基本依赖

1.vue的依赖

声明一点,自从22年3月依赖vue的默认版本就变成了3.x所有后面需要@指定版本。

npm i vue

2.ui组件库依赖

组件库可以自己选择

npm install element-plus --save

3.AJAX请求库依赖(axios)

npm i axios

二、几个loader和webpack配置

  • webpack 打包
  • webpack-cli webpack命令行接口
  • vue-loader 把vue文件后缀编译
  • vue-template-compiler vue模板的编译
  • sass-loader 将sass文件转成css代码
  • css-loader 将css文件编译
  • style-loader 将模板中的style标签下的css进行编译
  • babel-loader 高级语法的兼容性问题
  • @babel/core babel的核心库
  • @babel/preset-env 兼容最新语法

1.引入库

代码如下(示例):

npm i -D webpack webpack-cli vue-loader vue-template-compiler sass-loader sass css-loade style-loader babel-loader @babel/core @babel/preset-env

2.目录结构

在这里插入图片描述

三、main.js入口文件与index.html

1.main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

const app = createApp(App) // 创建vue实例
app.use(router) // 使用路由
app.mount('#app') // 挂载到id为app的div

2.index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="icon" href="./favicon.ico" type="image/x-icon" />
  <title>脚手架学习</title>
</head>
<body>
  <div id="app"></div>
</body>
</html>

*四、webpack配置文件

const path = require('path')
const { VueLoaderPlugin } = require('vue-loader')
const HtmlPlugin = require('html-webpack-plugin')
const htmlPlugin = new HtmlPlugin({
  template: './public/index.html', // 这是html模板存放的地址
  filename: './index.html',
})
module.exports = {
  mode: 'development',
  entry: './src/main.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
  module: {
    rules: [
      { test: /\.vue$/, use: ['vue-loader'] },
      { test: /\.s[ca]ss$/, use: ['style-loader', 'css-loader', 'scss-loader'] },
      { test: /\.(png|jpe?g|gif|svg|webp)$/, type: 'asset/resource' },
    ],
  },
  // 插件就让多一个功能
  plugins: [new VueLoaderPlugin(), htmlPlugin],
  devServer: {
    open: true, //打包完自动打开文件
    host: '127.0.0.1',
    port: 8080, //实时打包所使用的端口号
    client: {
      logging: 'none',
    },// 关闭客户端的log
  },
}

五、路由文件

import { createRouter, createMemoryHistory } from 'vue-router'

const routes = []

const router = createRouter({
  history: createMemoryHistory(),
  routes,
})

export default router

六、babel.config.js

module.exports = {
  presets: ['@babel/preset-env'],
}


更新中~

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值