028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

前端工程化 Webpack基础

前端工程化

webpack

安装

// webpack.config.js
module.exports = {
    ...
}

webpack.config.js 配置

1.mode模式

module.exports = {
    mode: 'development'
}

2.出入口文件

const path = require('path')
module.exports = {
    entry: path.join(__dirname, './src/index.js'),   // 入口文件
    output: {
        path: path.join(__dirname, './dist'),        // 输出目录
        filename: 'bundle.js'                        // 输出文件
    }
}

3.loader加载器

webpack文件加载器,webpack默认只能打包处理.js文件,其他非.js后缀文件需要loader加载器处理完成后才能进行打包

站在用户的角度思考问题,与客户深入沟通,找到德江网站设计与德江网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广、申请域名雅安服务器托管、企业邮箱。业务覆盖德江地区。

3-1. less, css等样式文件处理

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

3-2. url路径相关文件处理,如图片、字体文件、csv、xml文件等

module.exports = {
    rules: [
        // url参数形式配置
        { test: /\.jpg|png|gif$/, use: 'url-loader?limit=' },
        // url参数options形式配置
        {
            test: /\.jpg|png|gif$/,
            use: {
                loader: 'url-loader',
                options: { 
                    limit: ,
                    outputPath: 'image'       // 明确指定打包生成的图片文件存放到dist目录下的image文件夹中
                }
            }
        },
        // 字体文件
        {
            test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
            use: {
                loader: 'url-loader',
                options: { limit:  }
            }
        },
        // csv文件
        {
            test: /\.(csv|tsv)$/i,
            use: {
                loader: 'csv-loader'
            }
        },
        // xml文件
        {
            test: /\.xml$/i,
            use: {
                loader: 'xml-loader'
            }
        }
    ]
}

3-3. js高级语法处理

名称 描述
@babel/core babel核心工具
@babel/preset-env babel预定义环境
babel-loader babel加载器,编译js文件用
core-js 使老版本浏览器兼容新版ES语法
module.exports = {
    rules: [
        {
            test: /\.js$/,
            use: {
                loader: 'babel-loader',
                options: {
                    // 设置预定义环境
                    presets: [
                        [
                            '@babel/preset-env',    // 指定环境的插件
                            // 配置信息
                            {
                                // 兼容的浏览器目标版本
                                targets: {
                                    'chrome': '58',
                                    'ie': '11'
                                },
                                // 指定core.js版本
                                'corejs': '3',
                                // 使用corejs方式 'usage':按需加载
                                'useBuiltIns': 'usage'
                            }
                        ]
                    ]
                }
            }
        }
    ]
}

4.webpack-dev-server

"scripts": {
    "dev": "webpack serve"
}
module.exports = {
    devServer: {
        open: true,             // npm run dev后,自动打开浏览器
        host: '127.0.0.1',      // 主机地址
        port: 8080              // 端口号,默认为8080
    }
}

5.插件

const HtmlWebpackPlugin = require('html-webpack-plugin') 
module.exports = {
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'   // 指定入口自定义的html文件
        })
    ]
}
const CleanWebpackPlugin = require('clean-webpack-plugin')
module.exports = {
    plugins: [
        new CleanWebpackPlugin()
    ]
}

6.SourceMap

module.exports = {
    // eval-source-map 使"运行报错的行数"与”源代码行数“保持一致,但性能较低
    devtool: 'eval-source-map'
}

打包发布

"scripts": {
    "build": "webpack --mode production"
}

摘要

更多配置可查看官方文档


新闻名称:前端工程化 Webpack基础
网址分享:http://www.tsicrk.com/article/dsojhsd.html

其他资讯

让你的专属顾问为你服务

2.9641s