美文网首页
Webpack打包工具

Webpack打包工具

作者: 张先觉 | 来源:发表于2020-06-09 13:28 被阅读0次

webpack文档webpack优质文章

webpack打包工具,基于node环境。将CSS、Sass、Less、TypeScript等语言,编译、组合、压缩成为JS文件(由于webpack 自身只理解 JavaScript)。

  1. 安装webpack:npm i webpack webpack-cli -gnpm init -ynpm i webpack webpack-cli -D

  2. 重要概念:1.entry入口、2.output出口、3.mode模式、4.loader模块处理、5.plugins插件

  3. webpack.config.js基本配置,可打包JS文件,代码如下:

|-- demo
    |-- dist
        |--bundle.js   打包文件
    |--src
        |--demo.js
        |--index.js    入口文件(import './demo.js')
    |--webpack.config.js


const path = require('path');

module.exports = {
    entry:"./src/index.js",
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:"bundle.js"
    },
    mode:"development"
}

// __dirname,输入指令“webpack”,相当于"webpack ./src/index.js -o ./dist/bundle.js --mode=development"
  1. webpack打包处理css样式文件,借助style-loadercss-loader,webpack.config.js配置如下:
    • webpack > loader > test 属性 ,用于标识处理那种类型的文件
    • webpack > loader > user 属性 ,注意!当中所执行的loader,从下而上,逆序执行。
    • 依赖:npm i webpack webpack-cli style-loader css-loader -D
|-- demo
    |-- dist
        |--bundle.js   打包文件
    |--src
        |--demo.css
        |--index.js    入口文件(import './demo.css')
    |--webpack.config.js


const path = require('path');

module.exports = {
    entry:"./src/index.js",
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:"bundle.js"
    },
    module:{
        rules:[
            {
                test:/\.css$/,
                use:[   // use当中的loader从下至上,逆序执行。
                    'style-loader',// 将打包后js文件当中的css部分插入style标签
                    'css-loader',  // 将css转换成为js
                ]
            }
        ]
    },
    mode:"development"
}
  1. webpack打包自动生成index.html,借助html-webpack-plugin插件,配置如下:
    • 依赖:npm i webpack webpack-cli html-webpack-pligin -D
|-- demo
    |-- dist
        |--bundle.js   打包文件
        |--index.html
    |--src
        |--index.js    入口文件
    |--webpack.config.js
    |--index.html      参照对象


let path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry:'./src/index.js',
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:'bundle.js'
    },
    plugins:[
        new HtmlWebpackPlugin({
            template: './index.html' // 参照对象
        })
    ],
    mode:'development'
}
  1. url-loader将文件转成base64URL,替代file-loader处理图片文件。配置如下:
    • 依赖:npm i webpack webpack-cli html-webpack-plugin html-loader url-loader -D
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry:'./src/index.js',
    output:{
        filename:'bundle.js',
        path:path.resolve(__dirname,'dist')
    },
    module:{
        rules:[
            {
                test: /\.(png|jpg|gif)$/i,
                loader:'url-loader',
                options:{
                    limit: 6 * 1024,    // 当图片小于6k的时候,将图片转成base64字符串,减少请求,但是项目体积会增加。
                    esModule:false, // webpack基于node,使用CommonJS语法,所以,关闭ES语法,避免冲突
                    name:'[hash:10].[ext]', // 截取hash的前10位作为扩展名
                }
            },
            {
                test:/\.html$/,
                loader: 'html-loader'   // 将html导出为字符串(打包出来的html,可以直接打包后的文件)
            }
        ]
    },
    plugins:[
        new HtmlWebpackPlugin({
            template:'./index.html'
        })
    ],
    mode:'development'
}
  1. webpack-dev-server热更新。配置如下:
  • 依赖:npm i webpack webpack-cli html-webpack-plugin -Dnpm i webpack-dev-server -g
|-- demo
    |-- dist
        |--bundle.js   打包文件
        |--index.html
    |--src
        |--index.js    入口文件
    |--webpack.config.js
    |--index.html      参照对象


const path = require('path');
const htmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './src/index.js',
    output:{
        path:path.resolve(__dirname,'dist'),
        filename:'bundle.js'
    },
    devServer:{
        contentBase:path.resolve(__dirname,'dist'), // 项目构建路径
        port:3000, // 端口号,http://localhost:3000/
        open:true,  // 自动打开
        compress:true,  // 压缩
    },
    plugins: [
        new htmlWebpackPlugin({
            template:'./index.html'
        }),
      ],
    mode:"development"
}

相关文章

  • 02-02.Webpack - 模块打包工具

    Webpack - 模块打包工具 At its core, webpack is a static module ...

  • webpack简单使用

    一、webpack简介 1.webpack是什么 webpack项目打包工具,项目构建工具 2.webpack有什...

  • webpack

    webpack定义:模块打包工具

  • webpack初始(1)

    1. 简介 webpack(模块打包工具):webpack是一个打包模块化的Javascript的工具,它会 从入...

  • Webpack 4 新手入门教程,全面讲解

    什么是webpack? 说白了webpack只是一个打包工具,在webpack之前就已经有很多打包工具了,比如Gu...

  • webpack学习笔记

    关于webpack webpack是一个针对 JavaScript 的打包工具 ===》模块打包器(module...

  • webpack 中的哪些常见概念

    webpack 打包工具与 gulp、grunt的区别: 虽然这三个都是打包工具,但是webpack是一个模块,它...

  • 002手动配置webpack的记录

    与webpack有类似功能的工具grunt/gulp1webpack 是什么?打包工具(WebPack可以看做是模...

  • webpack详解

    webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...

  • Webpack打包工具

    webpack文档、webpack优质文章 webpack打包工具,基于node环境。将CSS、Sass、Less...

网友评论

      本文标题:Webpack打包工具

      本文链接:https://www.haomeiwen.com/subject/tunjtktx.html