当前位置: 首页 > news >正文

webpack环境配置分类结合vue使用

文件目录结构

 

按照目录结构创建好文件

控制台执行: npm install

/config/webpack.common.jsconst path = require('path')
const {merge} = require('webpack-merge')
const {CleanWebpackPlugin} = require('clean-webpack-plugin')
const { VueLoaderPlugin } = require('vue-loader');
const HtmlWebpcakPlugin = require("html-webpack-plugin")
module.exports = {entry:'./src/main.js',output:{path:path.resolve(__dirname,'../dist'),filename:'[name].bundle.js'},plugins:[new CleanWebpackPlugin(),new HtmlWebpcakPlugin({template: path.resolve(__dirname,'../src/index.html')}),new VueLoaderPlugin()],module:{rules:[{test: /\.vue$/,loader: 'vue-loader'},{test: /\.css$/,use: ['vue-style-loader', 'css-loader','style-loader']}]},resolve: {extensions: ['.js', '.vue'],alias: {'vue$': 'vue/dist/vue.esm.js'}}
}

开发环境

 ./config/webpack.dev.js
/** @description: * @param: * @return: * @Date: 2024-03-06 14:07:54*/
const path = require('path')
const {merge} = require('webpack-merge')
const common = require('./webpack.common.js')module.exports = merge(common,{mode:'development',devtool:'inline-source-map',devServer:{static:path.join(__dirname,'../dist'),host:'localhost',port:8080,open:true}
})

生产环境

./config/webpack.prod.js
/** @description: * @param: * @return: * @Date: 2024-03-06 14:08:25*/
const path = require('path')
const {merge} = require('webpack-merge')
const common = require('./webpack.common.js')
const TerserWebpackPlugin = require('terser-webpack-plugin')
module.exports = merge(common,{mode:"production",output:{filename:'[name].[hash:7].js' //例如 wang.4678946.js},optimization:{minimize:true,minimizer:[new TerserWebpackPlugin()]}
})
src/main.js/** @description: * @param: * @return: * @Date: 2024-04-07 17:50:43*/
import Vue, { h } from 'vue'
import App from './App.vue'
new Vue({render:h=>h(App)
}).$mount('#app')
src/index.html<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"></div><script src="../dist/build.js"></script>
</body>
</html>

src/App.vue<!--* @description: * @param: * @return: * @Date: 2024-04-07 18:47:25
-->
<template><div>{{ message }}</div>
</template><script>
export default {data() {return {message:'你打的'}}}
</script><style></style>

#package.json
{"name": "test-vue","version": "1.0.0","description": "","main": "index.js","scripts": {"start": "webpack serve --config ./config/webpack.dev.js ","build": "webpack --config ./config/webpack.dev.js"},"keywords": [],"author": "","license": "ISC","devDependencies": {"clean-webpack-plugin": "^4.0.0","html-webpack-plugin": "^5.6.0","terser-webpack-plugin": "^5.3.10","vue": "^2.7.16","webpack": "^5.91.0","webpack-cli": "^5.1.4","webpack-dev-server": "^5.0.4","webpack-merge": "^5.10.0","css-loader": "^7.0.0","vue-loader": "^15.4.2","vue-style-loader": "^4.1.3","vue-template-compiler": "^2.7.16"},"dependencies": {}
}

相关文章:

  • 蓝桥杯算法题:最大比例
  • 金融企业区域集中库的设计构想和测试验证
  • kubeadm部署的k8s1.29集群证书更新
  • 微信小程序中实现埋点的方法
  • flink1.18源码本地调试环境
  • 如何操作RAID 0阵列的扩容?
  • MongoDB初探:安装与图形化界面保姆级使用指南
  • 面试算法-132-和至少为 K 的最短子数组
  • 迷茫下是自我提升
  • Qt——Qt绘图之QPainter的使用总结(使用paintEvent实现旋转图片效果)
  • Oracle23免费版简易安装攻略
  • 区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计
  • ML.NET(二) 使用机器学习预测表情分析
  • 网页的皮肤——CSS
  • 四川古力未来科技抖音小店:安全便捷,购物新体验
  • [译]前端离线指南(上)
  • 2017前端实习生面试总结
  • Android开源项目规范总结
  • express.js的介绍及使用
  • flutter的key在widget list的作用以及必要性
  • Idea+maven+scala构建包并在spark on yarn 运行
  • js 实现textarea输入字数提示
  • Less 日常用法
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 阿里云应用高可用服务公测发布
  • 给github项目添加CI badge
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 前端路由实现-history
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 新手搭建网站的主要流程
  • ionic异常记录
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​io --- 处理流的核心工具​
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​插件化DPI在商用WIFI中的价值
  • #162 (Div. 2)
  • #define 用法
  • #pragma multi_compile #pragma shader_feature
  • $(function(){})与(function($){....})(jQuery)的区别
  • (07)Hive——窗口函数详解
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (day6) 319. 灯泡开关
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (二)丶RabbitMQ的六大核心
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • .bashrc在哪里,alias妙用
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .Net Winform开发笔记(一)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET连接数据库方式
  • .pop ----remove 删除