webpack打包

了解Webpack作为JavaScript应用程序的静态模块打包器的功能与优势,包括模块化打包、资源优化、CommonJS和ESM支持,以及如何通过配置文件、loader和插件进行高效打包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webpack是什么

webpack是javascrip应用程序的静态模块打包器(module bundler) html,js,css,图片

webpack能做什么

模块化打包
css,html,js变成一行,去除注释,去除多余引号

为什么要选择webpack

    1. webpack 进行打包可以解决由于加载太多脚本导致的网络瓶颈,增加脚本的可读性,避免整体文件出现问题。
    2. 支持CommonJS和EMS
    3. 在node.js的基础上运行,可以在浏览器环境之外使用

webpack打包

webpack本身是打包js的,如果想要打包其他文件则需要进行相关的配置

配置

四个核心概念
  1. 入口(entry)
  2. 输出(output)
  3. 装载机loader(loader)
  4. 插件(plugins) 其中入口和出口有默认的文件
配置文件

命名:webpack.config.js

入口与出口
const path = require("path");       //必须要引入
module.exports={
    entry: './src/index.js',                      //出口为src文件夹下的index.js文件 
    output:{
        path: path.resolve(__dirname,'dist'),    //出口为dist
        filename: 'bundle.js'           //加上hash打包之后的文件就出现很多bundle-[hash]                    //打包的生成文件名
    }
};

 

在这时还没有进行配置完成,使用命令webpack就可以看到,该文件夹下木木生成指定的dist文件夹来保存打包后的文件

loader

loader让webpack能够处理非js文件(loader可以import导入任何雷子那个的模块)
loader有很多,可以选择自己需要的进行下载,其中最好吃那个用的就是打包css文件就需要css-loader和style-loader,使用use进行使用 

loader使用
  1. loader安装
npm install style-loader css-loader -S

 

  1. loader配置

插件

插件之赐你个范围更广的任务
插件能够有效地打包,压缩除了js文件之外的css,html,图片等文件。 
例:html-webpacl-plugin

  1. 安装
npm install html-webpaxk-plugin -S

 

  1. 使用webpack.config.js进行配置

打包类型

/*修改package.json里面的test内容进行修改,就可以打包后成生产环境下的代码文件,但是是未压缩版*/
"scripts": {
    "test": "webpack --mode development"    
  },

 

其中test的名称可以修改,接下来输入命令webpack test(根据自己的命名进行相对应的修改),就可以进行打包

js的压缩

  1. js的压缩需要下载包,另外css的导入需要在js文件中进行
  2. 安装
npm install uglifyjs-webpack-plugin --save

 

  1. 进行配置
//首先需要进行导入
const uglify=require('uglifyjs-webpack-plugin');
//在plugin中进行插入
plugins:[
    new uglify()
]

 

webpack的img标记打包

  1. loader需要补充使用,该loader支持图片,首先需要安装该liader
npm install html-withimg-loader --save

 

  1. 进行插件的导入,配置
rules:[
`       {
             test:/\.html$/,
             use:'html-withimg-loader'
         }
]

 

webpack-dev-server

  1. 本地服务器 安装
npm install webpack-dev-server -S

 

  1. 配置 在module.exports中加入devServer进行相关配置
devServer: {
        contentBase: './dist',      //选择路径,本地服务路径
        port: '8080',           //设置端口,默认为8080
        inline:true           //实时刷新
    }

 

然后在package文件中进行配置

"'scripts": {
    dev: "webpack-dev-server --open --inline"
    //其中--open是自动打开,--inline设置为true之后就是自动刷新
}

 

运行npm run dev可以看到在8080端口本地浏览器打开项目

css提取

  1. css提取需要下载插件
nm install extract-text-webpack-plugin@next -S

 

next一定要有,否则会分离失败

  1. 然后在进行配置
//首先需要引入插件
const extractTextWebpackPlugin=require('extract-text-webpack-plugin');
//然后在进性配置
rules: [
            {
                test: /\.css$/,      //$为结尾,\.除了空格之外的任意字符
                use: extractTextWebpackPlugin.extract({
                    fallback:'style-loader',
                    use:[{
                        loader:'css-loader',
                        options:{       //css代码压缩为一行
                            minizemize:true
                        }
                    }],
                    publicPath:'../'        //如果publicPath没有写,图片的地址就会出现错误
                })
         }
    ]
    
//在plugins中配置
plugins:[
    new extractTextWebpackPlugin('./css/[name].css')
]

 

转载于:https://www.cnblogs.com/zzzha/p/9789518.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值