webpack基础配置

2023-11-20

webpack基础配置

关键字记录

module
exports 
require
entry
main
mode
development
production
output
filename
path
publicPath
devServer
contentBase
overlay
rules
use
loader

配置步骤:
1.创建一个目录,在cmd命令提示符中,在该目录中初始化配置,执行完后会生成一个package.json文件:

npm init -y

2.本地局部安装webpack webpack-cli webpack-dev-serve
–save-dev本地安装

npm install webpack webpack-cli webpack-dev-server --save-dev

3.配置文件(webpack.dev.js)

const path = require("path")
module.exports ={
    //入口:可以有多个
    entry:{
        main:["./src/main.js"]
    },
    //打包环境  development:开发   production:生产
    mode:"development",
    //出口:有且只有一个
    output:{
        //打包编译后的文件名
        filename:"[name]-bundle.js",
        //打包编译后文件的所在目录
        path: path.join(__dirname,"../dist"),
        //资源文件目录
        publicPath:"/"
    },
    //本地服务配置
    devServer:{
        //默认是在dist下
        contentBase:"dist"
    }
}

4.运行webpack-dev-server

webpack-dev-server --config=config/webpack.dev.js

5.文件打包

webpack --mode development  //开发环境
webpack --mode production //生产环境

配置css

1.安装style-loader和css-loader

npm install style-loader css-loader

2.配置css

//本地服务配置
    devServer:{
        //默认是在dist下
        contentBase:"dist",
        //报错显示
        overlay:true
    },
module:{
        rules:[
            {
                test:/\.css$/,
                use:[
                    {
                        loader:"style-loader"
                    },
                    {
                        loader:"css-loader"
                    }
                ]
            }
        ]
    }

配置htnl

1.安装加载器

npm install html-loader extract-loader file-loader

2.配置html

//html配置
            {
                test:/\.html$/,
                use:[
                    //给打包后的文件起名
                    {
                        loader:"file-loader",
                        options:{
                            name:"[name].html"
                        }
                    },
                    //和js文件分离
                    {
                        loader:"extract-loader"
                    },
                    //加载html文件
                    {
                        loader:"html-loader"
                    }
                ]
            }

配置图片

1.安装加载器
需要安装file-loader加载器

npm install file-loader

2.配置图片

{
                test:/\.(jpg|png|gif)$/,
                use:[
                    {
                        loader:"file-loader",
                        //"images/[name]-[hash:8].[ext]" 添加8位的hash值
                        options:{
                            name:"images/[name]-[hash:8].[ext]"
                        }
                    }
                ]
            }

es语法转换(babel)

1.安装加载器

//转换工具
npm install babel-cli
//加载器
npm install babel-loader@7
//编译插件
npm install babel-preset-env
//解决promise对打包的环境污染
npm install babel-plugin-transform-runtime

2.配置文件
创建一个.babelrc文件,在这个文件中配置插件

{
    "presets": [
        [
            "env",
            {
                "targets":{
                    //支持的浏览器和版本
                    "browsers":["last 2 versions"]
                },
                "debug":true
            }
        ]
    ],
    "plugins": [
        //解决promise对打包的环境污染
        "transform-runtime"
    ]
}
//js
            {
                test:/\.js$/,
                use:[
                    {
                        loader:"babel-loader"
                    }
                ],
                exclude:/node_modules/
            },

把散落在各地的css集成一个css文件

1.安装mini-css-extract-plugin

npm install mini-css-extract-plugin

2.配置


const MiniCssExtractPlugin = require('mini-css-extract-plugin');
let path = require("path");
module.exports = {
    entry: {
        main: ["./src/main.js"]
    },
    mode: "development",
    output: {
        filename: "[name]-bundle.js",
        path: path.resolve(__dirname, "../dist"),
        publicPath: "/"
    },
    devServer: {
        contentBase: "dist"
    },
    module: {
        rules: [
            //html配置
            {
                test: /\.html$/,
                use: [
                    //给打包后的文件起名
                    {
                        loader: "file-loader",
                        options: {
                            name: "[name].html"
                        }
                    },
                    //和js文件分离
                    {
                        loader: "extract-loader"
                    },
                    //加载html文件
                    {
                        loader: "html-loader"
                    }
                ]
            },
            //css
            {
                test: /\.css$/,
                use: [
                    {
                        loader: 'style-loader'
                    },
                    {
                        loader: MiniCssExtractPlugin.loader,
                        options: {
                            esModule: true,
                        }
                    },

                    {
                        loader: 'css-loader'
                    }
                ]
            }
        ]
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename:"[name]-bundle.css"
        })
    ]
}

压缩css文件

1.安装插件

optimize-css-assets-webpack-plugin

2.配置


const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
 
 optimization: {
        minimizer: [new OptimizeCssAssetsPlugin({})],
    },
 plugins: [       
        new OptimizeCssAssetsPlugin({
            assetNameRegExp: /\.css$/g,
            cssProcessor: require('cssnano'),
            cssProcessorPluginOptions: {
              preset: ['default', { discardComments: { removeAll: true } }],
            },
            canPrint: true
          })

引入vue文件,运行报错

1.引入

import Vue from 'vue'

2.webpack.comfig.js配置

resolve:{
        alias:{
            'vue$':'vue/dist/vue.js'
        }
    },

vue单页面

1.安装

npm install vue-loader vue-template-compiler --save-dev

2.配置

const VueLoaderPlugin = require('vue-loader/lib/plugin');
module: {
        rules: [
        //vue 解析
        {
                test: /\.vue$/,
                loader: 'vue-loader'
            }
		]
}
            
  resolve:{
        alias:{
            'vue$':'vue/dist/vue.js'
        }
    },
    plugins: [
        new MiniCssExtractPlugin({
            filename: "[name]-bundle.css"
        }),
        new VueLoaderPlugin()
    ]

3.使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack基础配置 的相关文章

随机推荐

  • Photoshop、Illustrator、Sketch哪个更好

    以前在交流组经常能看到大家争论哪个设计软件好 到底是你的吗 Illustrator好还是我的CorelDRAW或者他的Photoshop强大 但是跟着UI流行的设计 Sketch软件也加入了争论 让我们和你分享一下这篇文章 让我们来看看平面
  • 怎么检查代码完好?

    怎么检查代码完好 一 前言 在提交代码前 不论是提交到 SVN 还是 Git 仓库 我们都必须保证提交的代码是正确无误 那么咱们怎么才能确保资金调的代码是正确无误的呢 二 问题 1 maven 项目中提交代码前 怎么保证代码正确无误 2 W
  • 树莓派内核开发准备(内核源码获取、启动过程、源码目录树)

    目录 1 交叉编译工具的安装 2 内核源码获取 3 嵌入式设备带操作系统的启动过程扫盲 4 Linux内核源码树扫盲 1 内核源码简介 2 Linux内核源代码目录树结构 tree指令查看 内核源码目录树 1 交叉编译工具的安装 参照我之前
  • 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄

    MARS STM32遥控器v1 0 MARS STM32遥控器v1 0 1 1 遥控器简介 1 2 硬件详解 8 2 1MCU主控部分 8 2 2电源部分 9 2 3摇杆 段位 拨轮通道部分 10 2 4五项按键 11 2 5蜂鸣器和LED
  • SpringCloud Alibaba 引入Dubbo踩坑

    前言 在搭建springcloud alibaba的时候 引入Dubbo相关依赖 项目启动报错 版本信息 依赖 版本 Spring Boot 2 4 2 Spring Cloud 2020 0 0 Spring Cloud Alibaba
  • 为什么大公司一定要使用DevOps?

    0 DevOps的意图 究竟什么是DevOps 要想回答这个问题 首先要明确DevOps这个过程参与的人员是谁 即开发团队和IT运维团队 那么 DevOps的意图是什么呢 即在两个团队之间 建立良好的沟通和协作 更快更可靠的创建高质量软件
  • 机器学习分类模型-线性回归Linear regression

    Linear regression module from collections import Counter import numpy as np import pandas as pd from imblearn over sampl
  • 阿里云ftp配置

    yum install vsftpd 安装ftp rpm Uvh http mirror centos org centos 6 os x86 64 Packages ftp 0 17 54 el6 x86 64 rpm 安装ftp插件 v
  • 学习PostgreSQL

    参考链接 https www runoob com postgresql postgresql tutorial html
  • Mysql 批量update和批量insert详解

    为了减少与数据库的连接 减少服务器的负荷 需要我们时常对SQL进行分析 优化等操作 针对mysql的批量更新 insert 和 update 就是使用一条INSERT UPDATE语句来更新多条记录 由于不是标准的SQL语法 只能在MySQ
  • 构建知识图谱,让自己更值钱 #CSDN博文精选# #知识图谱# #IT技术#

    大家好 我是小C 又见面啦 文章过滤器 精选大咖干货 助力学习之路 5天20篇CSDN精选博文带你掌握系统化学习方法 专栏将挑选有关 系统化学习方法 的20篇优质文章 帮助大家掌握更加科学的学习方法 在这里 你将收获 快速掌握系统化学习的理
  • Android 弹出通知

    Android 8 0
  • fatal error C1083: 无法打开包含文件:“iostream.h”: No such file or directory

    刚开始用Visual studio net 2003 一个这样的例子 新建了一个win 32项目 include stdafx h include
  • 使用Mask-RCNN在实例分割应用中克服过拟合

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 Kayo Yin 编译 ronghuaiyang 导读 只使用1349张图像训练Mask RCNN 有代码 代码 https github com kayoyin tiny in
  • 【react】回调函数形式的ref

    回调函数有3个特点 是我定义的函数 我没有调用这个函数 在我没有调用的情况下这个函数自己执行了 ref绑定一个箭头函数作为回调函数 可以输出以下这段看下 ref绑定的箭头函数是会自己执行的 class Demo extends React
  • 关于运发的知识点123(个人笔记 持续更新)

    前言 作为一个物联网的小辣鸡 硬件设计水平不能说没有 只能说一点点 正好要做新项目 自己学着去处理信号 滤波 在这里做一点笔记 参考书一 杨建国老师 新概念模拟电路 pdf 参考书二 单电源运放图集 pdf 原版 翻译中文版 注 想要的自己
  • redis配置 -详情-redis.config

    Redis config 启动的时候 就通过配置文件来启动 单位 配置文件 unit单位 对大小写不敏感 不区分大小写 INCLUDES 包含 include path to local conf include path to other
  • 加糖的CRM---开源项目Sugar CRM中文化安装过程

    目前CRM满天飞 一直也没什么兴趣 好象从几百万美刀到几百块的都有 这次试了试安装Sugar CRM 把安装过程梳理了一下 记下来 以下在环境为windows XP sp2 IIS5 1 MYSQL4 18 PHP5 0下安装成功 首先是要
  • 如何修改NuGet默认全局包文件夹的位置?

    由于一些历史原因 重装系统成为Windows用户解决疑难杂症的祖传手艺 受此影响 给硬盘分区几乎成为了一种执念 少则C D两个盘 夸张一点的5 6个盘的也不是没有 PS macOS和Linux一直都不鼓励给磁盘分区 虽然不禁止但也不提倡 随
  • webpack基础配置

    webpack基础配置 关键字记录 module exports require entry main mode development production output filename path publicPath devServe