• webpack打包


    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')
    ]
  • 相关阅读:
    javascript 阻止多次点击造成的轮播混乱
    javascript切换效果
    关于bxslider在点击左右按钮之后不能自动切换的问题解决
    javascript 多图无缝切换
    javascript 多图无缝切换
    javascript 切换动画
    javascript无缝全屏轮播
    jquery css3 手机菜单动画综合版
    jquery模仿css3延迟效果
    Mysql的存储过程总结
  • 原文地址:https://www.cnblogs.com/zzzha/p/9789518.html
Copyright © 2020-2023  润新知