Webpack打包工具使用

Webpack

npm init -y
  • 开发时用:-D (–save -dev)
  • 开发,上线都用: -S (–save)
1.安装
npm i webpack@5.42.1 webpack-cli@4.7.2 -D
2.配置

1.在项目根目创建webpack.config .js的webpack配置文件

module.exports={
mode:'development'//mode可选development (开发用)和production(上线用)
}

2.在package.json的script节点下新增dev脚本

"scripts":{"dev":"webpack"}//可用npm run dev

3.在终端运行npm run dev


自定义打包入口与出口

在webpack.config.js文件中通过entry节点指定打包的入口通过output指定打包的出口


const path = require('path');
module.exports = {
// 打包入口文件
entry: path.join(__dirname, './src/index.js'),
output: {
        // 输出文件的存放路径
        path: path.join(__dirname, 'dist'),
        //输出文件的名称
        filename: 'js/main.js',
    },
}
webpack中的插件

webpack-dev-server(工具)
当修改源代码,webpack会自动进行打包和构建
webpack-dev-server生成到内存中的文件,默认放到了项目的根目录在,而且是虚拟的,不可见的。
安装

npm i webpack-dev-server@3.11.1 -D

配置
修改webpack.json->scripts中的dev命令

"scripts": {
    "dev": "webpack serve",
  },

html-webpack-plugin(插件)
可以通过此插件自定义index.html页面的内容
安装

npm i html-webpack-plugin@5.3.2 -D

配置(在webpack.config.js中)

const HtmlPlugin = require('html-webpack-plugin');
const htmlPlugin = new HtmlPlugin({
    template: './src/index.html',
    filename: './index.html',
})
module.exports = {
    mode: 'development',
    plugins: [htmlPlugin],
}
dev server节点

在webpack.confg.js配置文件中,可以通过devserver节点对webpack-dev-server插件进行更多配置

  devServer: {
        open: true,//初次打包后打开浏览器
        host: '127.0.0.1',//打包所使用的主机地址
        port: 80,//打包所用端口
    },
loader加载器

安装

npm i style-loader@3.0.0 css-loader@5.2.6 -D

在webpack.config.js的moducle->rules数据中添加loader

 module: {
        rules: [{
            test: /\.css$/,
            use: ['style-loader', 'css-loader']
                 }]
            }
打包处理less文件

安装

npm i less-loader@10.0.1 less@4.1.1 -D

配置
在webpack.config.js的module->rules数据中添加loader规则

mouder:{
        rules: [{
            test: /\.less$/,
            use: ['style-loader', 'css-loader', 'less-loader']
                }]
        }
打包处理样式中url路径相关的文件

安装

npm i url0loader@4.1.1file-loader@6.2.0 -D

配置
在webpack.config.js的module->rules数组中添加loader

mouder:{
        rules: [{   
                test: /\.jpg|png|gif$/,
                 use: ['url-loader?                                              limit=170&outputPath=images']
                }]
        }
babel-loader

webpack 无法处理的高级js语法使用bable-loader
安装

npm i babel-loader@8.2.2 @bsbel/core@7.14.6 @babel/plugin-proposal-decorators@7.14.5 -D

配置
在webpack.config.js的module->rules添加loader

{
    test: /\.js$/,
    use: ['babel-loader'],
    exclude: /node_modules/,
}

在项目中创建babel.confing.js的配置文件定义babel的配置

module.exports = {
    plugins: [['@babel/plugin-proposal-decorators', { legacy: true }]]
}

打包发布

 "scripts": {
    "dev": "webpack serve",
    "bulid": "webpack --mode production"//发布
  },

通过–model指定参数会覆盖webpack.config.js中的model选项

把js文件统一生成到js目录中
在webpack.config.js中output中的filename‘js/bundle.js’
把images文件放在image目录中
修改webpack.config.js中的url-loader新增outputPath选项可指定图片文件的输出路径

{
        test: /\.jpg|png|gif$/,
        // use: ['url-loader?limit=170&outputPath=images']
        use: {
          loader: 'url-loader',
          options: {
            limit: 170,
            outputPath: 'images'
          }
        }
      },
打包自动清理dist下的旧文件

安装

npm i clean-webpack-plugin@3.0.0 -D

配置
按需导入插件,得到插件的构造函数,创建插件的实例化对象

const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const cleanPlugin=new CleanWebpackPlugin()

把创建的实例对象挂载到plugins节点中

  plugins: [htmlPlugin, cleanPlugin],
Source Map

是一个信息文件,存在位置信息,
在webpack.config.js中加devtool:“eval-source-map,”(开发用)
只定位行号,不显示源码
devtool:"nosources-sours-map或SourceMap”(上线用)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值