webpack常见的配置

安装webpack: npm install webpack webpack-cli -D

全局安装webpack:npm install --global webpack webpack-cli (不推荐全局安装,这会将你的项目中的webpack锁定到指定版本,并且在使用不同的webpack版本的项目中可能会导致构建失败)。

https://blog.csdn.net/qq_18581221/article/details/79427363

几个核心概念:

1.mode开发模式

如果是development(开发模式),则打包后正常显示,如果是production(产品模式),则打包后为压缩模式。

2.入口文件(entry):

入口文件类似于其他语言的起始文件(如main函数所在的文件)。入口起点指示webpack应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack会找出有哪些模块和库时入口起点依赖的。

webpack配置的entry(有三种输入方式)

1.一个入口文件,所有的依赖全部在这个入口文件中指定:webpack 4.x后,一个入口文件默认为src下面的index.js,不用写entry

2.将两个平行的,不相依赖的两个文件打包在一起(以数组的形式):entry: ['./src/index.js','./src/a.js']

3.输出(output):

output属性告诉webpack在哪里输出它所创建的bundles,以及如何命名这些文件。

如果入口文件有多个,若output.filename还是写死的一个,它们之间就会进行报错。解决办法:通过一些占位符使每个文件输出名都是唯一的

①    [name]占位符

②    [hash]占位符

③    [chunkhash]占位符

4.loader

loader让webpack能够去处理那些非JS文件(webpack自身只理解JS)。loader可以将所有类型的文件转换为webpack能够处理的有效模块,然后就可以利用webpack的打包能力,对它们进行处理。

5.插件(plugins):

loader被用于转换某些类型的模块,而插件则可以用于执行范围更广的任务。插件的范围包括:从打包优化和压缩,一直到重新定义环境中的变量。插件的功能及其强大,可以用来处理各种各样的任务。

webpack的基础配置:

手动配置webpack:默认配置文件的名字为:webpack.config.js

//webpack是node写出来的  是node的写法

const path = require('path');
//const htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    //模式默认有两种:development  production
    mode : 'development',
    entry: './src/index.js',   //入口
    output:{
        //路径必须是一个绝对路径,resolve可以把相对路径解析为一个绝对路径
        //path.resolve('dist')也可以,表示在当前路径下解析一个dist目录
        path : path.resolve(__dirname,'dist'),
        filename : '[name].bundle.js'   //打包后的文件名
    }

如果想要修改默认的配置文件名称,如:把webpack.config.js文件名修改为webpack.config.my.js

当然直接执行npx webpack命令会报异常,找不到该配置文件,但是我们可以手动的指定配置文件,如下:

npx webpack --config webpack.config.my.js

如果觉得这个名字太长了,每次执行起来很麻烦,我们可以到package.json文件中配置一些脚本

执行命令npm run build即可

 webpack-dev-server:

webpack-dev-server是一个小型的Node.js Express服务器,它并不会真实的去打包文件,只是生成一个内存中的打包,把文件写到内存中,默认端口是8080。

安装:npm install webpack-dev-server -D

可以通过在package.json文件中添加一条配置:

"dev": "webpack-dev-server"

然后直接用npm run dev来执行命令

 通过给定的地址直接访问页面即可

原文地址:https://www.cnblogs.com/zcy9838/p/11658418.html