webpack相关知识

15 篇文章 1 订阅
1 篇文章 0 订阅

1.webpack环境安装

npm install webpack webpack-cli -g//不指定版本,默认下载最新版本,全局安装以后直接使用
mkdir webpack  //创建项目文件夹
cd webpack  //进入项目文件夹
npm init -y  //生成项目配置文件

创建一个webpack.config.js的打包配置文件

module.exports={     
     项目入口配置,
     项目出口配置,
     加载器配置,
     插件配置,
     开发模式配置,
     其他
}

1.2 项目入口配置entry

1.2.1 单入口————(打包提交命令:webpack)

方法1:直接配置入口文件

// webpack配置文件
module.exports = {
    mode: "none",//开发模式
    entry: "./src/main.js",
}

方法2:使用基础目录拼接

// webpack配置文件
module.exports = {
    mode: "none",//开发模式
    context: __dirname + '/src',
    entry: "./main.js",//相对于context的路径
}

1.2.2 多入口

方法1:  打包出来的文件名a.js和b.js与a:""和b:""一一对应

// webpack配置文件
module.exports = {
    mode: "none",//开发模式
    context: __dirname + '/src',
    entry: {
        a: './main.js',      //输出时默认为a.js
        b: './index.js',     //输出时默认为b.js
    }

}


方法2:输出hash值的文件名

// webpack配置文件
module.exports = {
    mode: "none",//开发模式
    context: __dirname + '/src',
    entry: {
        a: { import: "./main.js", filename: "page/[name][hash].js" } //filename:输出的文件路径 
    }
}

面试题:名字解释 bundle,chunk,module 是什么?

1、module:开发中的每一个文件都可以看作是 module,模块不局限于js,也包含css,图片等

2、chunk:表示代码块,一个 chunk 可以由多个模块组成

3、bundle:最终打包完成的文件,一般就是和 chunk 一一对应的关系,bundle就是对 chunk 进行编译压缩打包等处理后的产出

1.3 出口output

// webpack配置文件
module.exports = {
    mode: "none",//开发模式
    context: __dirname + '/src',
    entry: "./main.js", //context+entry=> webpack/src/main.js (入口路径地址)

    //  2.output:输出 
    output: {
        asyncChunks: true, //创建按需加载的异步 chunk。
        path: __dirname + "/dist1",//输出的目录,绝对路径,默认dist

        // filename: 输出的文件名   hash:加密
        filename: '[name]-666-[id]bundle[hash:5].js',

        // library: 'hqyj',//库名
        library: {
            name: 'MyLibrary', //库名
            type: 'var', //配置将库暴露的方式。('var'、'module'、'assign'、'assign-properties'、'this'、'window'、'self'、'global'、'commonjs'、'commonjs2'、'commonjs-module'、'commonjs-static'、'amd'、'amd-require'、'umd'、'umd2'、'jsonp' 以及 'system')
        },

        // 注释模块 若导出时想要将注释一并打包,就添加这句
        auxiliaryComment: 'Test Comment', //各种模块化导出技术的统一注释(把type设置为umd)	  

        // 在生成文件之前清空不是本次产生的文件,打包文件夹下的目录里的文件
        clean: true,

        clean: {
            keep: /main.html/, // 保留 'dist2/main.html'的静态资源不删
        },
    }
}

 1.4 加载器loader

1.4.1 文件加载器

下载插件 npm install css-loader style-loader --save-dev

 module: {
        rules: [
            //文件资源加载器  {test:/\.(png|jpg|jpeg|mp4|mp3)$/,use:["file-loader"]},
            // test:"当我遇到某个类型的文件的时候",use:"启用我们对应的加载器"
            {
                test: /\.png$/, use: ["file-loader"]
            },
        ]
}

 1.4.2 css-loader&style-loader

下载插件 npm install css-loader style-loader --save-dev

 1.4.3 ts-loader

下载插件 npm install ts-loader webpack typescript --save-dev

 1.4.4 sass-loader

下载插件 npm install sass-loader sass webpack --save-dev

 就可以在页面上渲染出来了

 1.5 插件plugin

安装: npm install --save-dev html-webpack-plugin

 

 1.6 开发环境devServer

安装: npm install --save-dev webpack webpack-dev-server webpack-cli

运行命令:webpack server(会弹出浏览器运行页面)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值