webpack配置–output常用配置详情-打包文件命名-抛出全局对象

webpack配置–output常用配置详情-打包文件命名-抛出全局对象

参考上一篇文章:链接: webpack配置–entry(入口起点)详细配置-单入口|多入口.

将webpack.config.js文件内容替换为下边代码内容即可运行

const { resolve } = require("path");// 路径处理
const htmlWebpackPligins = require("html-webpack-plugin");// html模板
const { CleanWebpackPlugin } = require("clean-webpack-plugin")// 清空上次打包内容
/* 
    entry: 入口起点
    1.string --> "./src/main.js" -- 单入口
        打包形成一个chunk。输出一个bundle文件。
        chunk默认的名称是 main
    2.array --> ["./src/add.js", "./src/main.js"] -- 多入口 (用途-html不能热更新,引入html文件让HMR功能生效)
        打包形成一个chunk。输出一个bundle文件。
        chunk默认的名称是 main
    3.object --> { main: "./src/main.js", add: "./src/add.js", } -- 多入口 
        引入几个文件就生成几个chunk,同样输出同等数量的bundle文件
        此时chunk的名称为key值
    4.object[Array] --> { main: ["./src/main.js"] } -- 多入口
        一个{key:value}为一个chunk,输出一个bundle文件
        此时chunk的名称为key值
*/
module.exports = {
    // entry: "./src/main.js",
    // entry: ["./src/main.js", "./src/add.js"],
    // entry: { main: "./src/main.js", add: "./src/add.js", },
    entry: { main: ["./src/main.js"], option: ["./src/add.js", "./src/count.js"], },// 推荐(可以将多个包打包成一个chunk,又提高了可维护性)
    output: {
        // 文件输出名称(指定名称+目录)
        // js/ 会将对应的js文件输出到js文件夹下
        filename: "js/[name].[hash:8].js",// [name] -- entry中相应的key; [hash:8] -- 生成8位哈希值; 例: main.dff06b57.js
        // 打包后文件输出位置(将来所有资源输出的目录)
        path: resolve(__dirname, "dist"),
        // 所有资源引入的公共路径  ==> ./image/image.jpg  (./为公共路径)
        publicPath: "./",
        /* 
            入口chunk:
                entry 中定义的入口文件为入口chunk
            非入口chunk:(异步引入的文件)(懒加载的文件)
                非 entry 中定义的文件为非入口chunk
        */
        chunkFilename: "js/[name]_chunk.js", // 非入口chunk名称
        /* 抛出一个全局变量(整个库内) 在main文件中体现为 var main = 一个匿名函数 */
        /* 使用场景: 使用如dll技术,单独打包出一个包时 */
        library: "[name]",
        /* 不再使用 var 来定义变量,而是添加到 window(浏览器中) 对象中 */
        libraryTarget: "window",
        // libraryTarget: "global",// 或者 global(nodeJS中)
        // libraryTarget: "commonjs", // 将使用 commonjs 方式引入它
    },
    plugins: [
        new htmlWebpackPligins(),// 使用生成html模板的插件
        new CleanWebpackPlugin(),// 使用打包后删除上一次打包文件的插件
    ],
    mode: "development", // 打包模式 development 开发模式(可读性高,代码体积大)  |  production 生产模式(可读性差,代码体积小)
}

main.js内容

这里就是非入口chunk的打包

add 和 count 文件不在entry入口中,而是在main文件中异步引入

所以 add 和 count 文件都属于非入口chunk

console.log("main.js文件");
/* 这种写法会多打包出一个chunk */
import("./add").then(() => {
    console.log("add文件被加载");
})
import("./count").then(() => {
    console.log("count文件被加载");
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值