webpack中多文件打包配置的详细流程

 更新时间:2023年11月20日 09:57:51   作者:周星星日记  
这篇文章主要介绍了webpack中多文件打包配置的详细流程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

1.module,chunk,bundle的区别

  • moudle - 各个源码文件,webpack中一切皆是模块
  • chunk - 多模块合并成的,如entryimport(), splitChunk
  • bundle - 最终的输出文件

2.多文件打包配置

2.1 webpack.common.js

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { srcPath, distPath } = require('./paths')
module.exports = {
    entry: {
        index: path.join(srcPath, 'index.js'),
        other: path.join(srcPath, 'other.js')
    },
    module: {
        rules: [
          // ----- 同上文 ----
        ]
    },
    plugins: [
        // 多入口 - 生成 index.html
        new HtmlWebpackPlugin({
            template: path.join(srcPath, 'index.html'),
            filename: 'index.html',
            // chunks 表示该页面要引用哪些 chunk (即上面的 index 和 other),默认全部引用
            // chunks: ['index']  // 只引用 index.js
        }),
        // 多入口 - 生成 other.html
        new HtmlWebpackPlugin({
            template: path.join(srcPath, 'other.html'),
            filename: 'other.html',
            // chunks: ['other']  // 只引用 other.js
        })
    ]
}

上面的chunks配置,如果不配置chunks,那么打包出来的结果是默认引入全部js

<body>
    <p>webpack demo</p>
    <input type="text"/>
	<script type="text/javascript" src="index.js"></script>
	<script type="text/javascript" src="other.js"></script>
</body>

如果配置了chunks,那么就只引入对应的结果

<body>
    <p>webpack demo</p>
    <input type="text"/>
     <script type="text/javascript" src="index.js"></script>
</body>

2.2 webpack.prod.js

const path = require('path')
const webpack = require('webpack')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const webpackCommonConf = require('./webpack.common.js')
const { smart } = require('webpack-merge')
const { srcPath, distPath } = require('./paths')
module.exports = smart(webpackCommonConf, {
    mode: 'production',
    output: {
        // filename: 'bundle.[contentHash:8].js',  // 打包代码时,加上 hash 戳
        filename: '[name].[contentHash:8].js', // name 即多入口时 entry 的 key
        path: distPath,
        // publicPath: 'http://cdn.abc.com'  // 修改所有静态文件 url 的前缀(如 cdn 域名),这里暂时用不到
    },
    module: {
        rules: [
            //代码重复
        ]
    },
    plugins: [
        new CleanWebpackPlugin(), // 会默认清空 output.path 文件夹
        new webpack.DefinePlugin({
            // window.ENV = 'production'
            ENV: JSON.stringify('production')
        })
    ]
})

多入口时,output出口的【name】变量会对应到入口的变量名 

到此这篇关于webpack中多文件打包的文章就介绍到这了,更多相关webpack多文件打包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • javascript算法之数组反转

    javascript算法之数组反转

    这篇文章主要介绍了javascript算法之数组反转,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • 给事件响应函数传参数的四种方式小结

    给事件响应函数传参数的四种方式小结

    这篇文章主要介绍了给事件响应函数传参数的四种方式。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 浅谈js中调用函数时加不加括号的问题

    浅谈js中调用函数时加不加括号的问题

    下面小编就为大家带来一篇浅谈js中调用函数时加不加括号的问题 。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • 微信小程序webview中监听返回按钮实现步骤

    微信小程序webview中监听返回按钮实现步骤

    在微信小程序中webview返回键是一个非常实用的功能,它允许用户在嵌入的网页中返回到上一个页面,这篇文章主要给大家介绍了微信小程序webview中监听返回按钮的实现步骤,需要的朋友可以参考下
    2024-08-08
  • JavaScript通过filereader接口读取文件

    JavaScript通过filereader接口读取文件

    这篇文章主要为大家详细介绍了通过filereader接口读取文件,使用readAsDataURL方法预览图片的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • javascript从右边截取指定字符串的三种实现方法

    javascript从右边截取指定字符串的三种实现方法

    这篇文章主要介绍了javascript从右边截取指定字符串的三种实现方法。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript 中.call()的使用小结

    JavaScript 中.call()的使用小结

    .call()是JavaScript中用于显式设置函数执行上下文并立即调用该函数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • JS实现公告上线滚动效果

    JS实现公告上线滚动效果

    这篇文章主要为大家详细介绍了JS实现公告上线滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • 小程序如何获取多个formId实现详解

    小程序如何获取多个formId实现详解

    这篇文章主要介绍了小程序如何获取多个formId实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Javascript随机标签云代码实例

    Javascript随机标签云代码实例

    这篇文章主要分享一个Javascript随机标签云代码实例,需要的朋友可以参考下。
    2016-06-06

最新评论