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

文件目录结构

 

按照目录结构创建好文件

控制台执行: npm install

/config/webpack.common.js

const 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": {
    
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/524742.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQLite 4.9的虚拟表机制(十四)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite 4.9的 OS 接口或“VFS”&#xff08;十三&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 1. 引言 虚拟表是向打开的 SQLite 数据库连接注册的对象。从SQL语句的角度来看&#xff0c; 虚拟表对象与任何其他…

目标跟踪——行人检测数据集

一、重要性及意义 目标跟踪和行人检测是计算机视觉领域的两个重要任务&#xff0c;它们在许多实际应用中发挥着关键作用。为了推动这两个领域的进步&#xff0c;行人检测数据集扮演着至关重要的角色。以下是行人检测数据集的重要性及意义的详细分析&#xff1a; 行人检测数据…

MySQL操作DML

目录 1.概述 2.插入 3.更新 4.删除 5.查询 6.小结 1.概述 数据库DML是数据库操作语言&#xff08;Data Manipulation Language&#xff09;的简称&#xff0c;主要用于对数据库中的数据进行增加、修改、删除等操作。它是SQL语言的一部分&#xff0c;用于实现对数据库中数…

python统计分析——多组比较

参考资料&#xff1a;python统计分析【托马斯】 一、方差分析 1、原理 方差分析的思想是将方差分为组间方差和组内方差&#xff0c;看看这些分布是否符合零假设&#xff0c;即所有组都来自同一分布。区分不同群体的变量通常被称为因素或处理。 作为对比&#xff0c;t检验观察…

(React Hooks)前端八股文修炼Day9

一 对 React Hook 的理解&#xff0c;它的实现原理是什么 React Hooks是React 16.8版本中引入的一个特性&#xff0c;它允许你在不编写类组件的情况下&#xff0c;使用state以及其他的React特性。Hooks的出现主要是为了解决类组件的一些问题&#xff0c;如复杂组件难以理解、难…

科技云报道:卷完参数卷应用,大模型落地有眉目了?

科技云报道原创。 国内大模型战场的比拼正在进入新的阶段。 随着产业界对模型落地的态度逐渐回归理性&#xff0c;企业客户的认知从原来的“觉得大模型什么都能做”的阶段&#xff0c;已经收敛到“大模型能够给自身业务带来什么价值上了”。 2023 年下半年&#xff0c;不少企…

Zotero参考文献引用(适用国内)

配置环境 【1】Windows 10 【2】Office 2021 【3】Zotero 6 目录 配置环境 前言 一、软件及插件安装 二、网页信息抓取 三、文献引用 注意事项 前言 本教程记录使用zotero作为自动插入参看文献引用工具的全流程&#xff0c;流程较为简洁&#xff0c;适用于平时论文写作不多&…

C语言 | Leetcode C语言题解之第15题三数之和

题目&#xff1a; 题解&#xff1a; int cmp(const void *x, const void *y) {return *(int*)x - *(int*)y; } //判断重复的三元组 bool TheSame(int a, int b, int c, int **ans, int returnSize) {bool ret true;for(int i 0;i < returnSize;i){if(a ans[i][0] &&…

书生·浦语训练营二期第三次笔记-茴香豆:搭建你的 RAG 智能助理

RAG学习文档1&#xff1a; https://paragshah.medium.com/unlock-the-power-of-your-knowledge-base-with-openai-gpt-apis-db9a1138cac4 RAG学习文档2: https://blog.demir.io/hands-on-with-rag-step-by-step-guide-to-integrating-retrieval-augmented-generation-in-llms-a…

2024/4/1—力扣—主要元素

代码实现&#xff1a; 思路&#xff1a;摩尔投票算法 int majorityElement(int *nums, int numsSize) {int candidate -1;int count 0;for (int i 0; i < numsSize; i) {if (count 0) {candidate nums[i];}if (nums[i] candidate) {count;} else {count--;}}count 0;…

操作系统复习

虚拟内存 内存(memory)资源永远都是稀缺的&#xff0c;当越来越多的进程需要越来越来内存时&#xff0c;某些进程会因为得不到内存而无法运行&#xff1b; 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存&#xff0c;而实际上&#xff0…

网络与并发编程(一)

并发编程介绍_串行_并行_并发的区别 串行、并行与并发的区别 串行(serial)&#xff1a;一个CPU上&#xff0c;按顺序完成多个任务并行(parallelism)&#xff1a;指的是任务数小于等于cpu核数&#xff0c;即任务真的是一起执行的并发(concurrency)&#xff1a;一个CPU采用时间…

JVM虚拟机(一)介绍、JVM组成、堆、栈、方法区/元空间、直接内存

目录 一、JVM 介绍1.1 为什么要学 JVM&#xff1f;1.2 JVM 是什么&#xff1f; 二、JVM 组成2.1 程序计数器2.2 Java堆1&#xff09;JVM 内存结构2&#xff09;Java 1.7 和 1.8 中堆的区别 2.3 Java虚拟机栈1&#xff09;虚拟机栈 和 栈帧2&#xff09;常见面试题 2.4 方法区/元…

Transformer模型-Feed Forward前馈网络和Relu激活函数的简明介绍

今天介绍transformer模型的Feed Forward network前馈网络和Relu激活函数 背景 位置感知Position-Wise前馈网络&#xff08;FFN&#xff09;由两个全连接层&#xff08;fully connected dense layers&#xff0c;就是线性层&#xff08;Linear Layer&#xff09;&#xff0c;或密…

LLM-base版本和chat版本的比较

突然想到了这个问题&#xff0c;网上搜集了一些资料&#xff0c;自己也总结一下 首先放一张llama2论文当中的图&#xff0c;可以很直观的看到区别 面试回答版 问题&#xff1a; 大语言模型base版和chat版的区别是什么&#xff1f; 回答&#xff1a; base版本更适合文本补全…

医疗器械FDA | 常见的网络安全材料发补问题都有哪些?

FDA网络安全资料发补咨询点此​​获取https://work.weixin.qq.com/ca/cawcde5ee29d239046 ————————--- 01 安全文档编写问题 FDA网络安全文档编写格式、内容、可读性等未满足官方要求&#xff0c;则将可能被要求发补整改编写后的文档。 02 安全管理问题 a. 网络安…

Apache-Pulsar安装操作说明

说明 Pulsar 是一种用于服务器到服务器消息传递的多租户高性能解决方案。 Pulsar 的主要特性如下&#xff1a; 对 Pulsar 实例中的多个集群的本机支持&#xff0c;并跨集群无缝地复制消息。 极低的发布和端到端延迟。 无缝可扩展至超过一百万个主题。 一个简单的客户端 API&…

C语言--#运算符和##运算符

#运算符和##运算符 这里提前补充一点printf C语言里面会天然的吧printf里面俩字符串合并为一个 #的使用 在C语言中&#xff0c;#符号主要用于预处理器指令。预处理器是在代码编译之前执行的&#xff0c;它处理所有以#开始的指令。以下是一些常见的使用情况&#xff1a;1. **…

自定义校验器

1.前端校验 <template><el-dialog:title"!dataForm.brandId ? 新增 : 修改":close-on-click-modal"false":visible.sync"visible"><el-form:model"dataForm":rules"dataRule"ref"dataForm"keyu…

MySQL-主从复制:概述、原理、同步数据一致性问题、搭建流程

主从复制 1. 主从复制概述 1.1 如何提升数据库并发能力 一般应用对数据库而言都是“读多写少”&#xff0c;也就说对数据库读取数据的压力比较大&#xff0c;有一个思路就是采用数据库集群的方案&#xff0c;做主从架构、进行读写分离&#xff0c;这样同样可以提升数据库的并…