webpack(二)基本配置及使用

xiaoxiao2025-04-16  15

上一篇博客里面介绍了什么是 webpack,及 webpack 的基本安装。这节主要是对基本配置及打包的一个总结。来一波实际操作

(请确保电脑里已经装了node)

我们先建一个空文件夹,然后打开命令行,cd进入你新建的文件目录下面(也可以在编辑器中的终端执行以下操作)

1. 初始化项目,一路回车,初始化成功后文件夹里有一个 package.json

npm init

2. 安装webpack,执行以下命令。这个最好不要用最新版本,因为会出现各种问题(很是让人头疼)

    安装成功之后,文件夹中会新增两个文件,node_modules 和 package-lock.json

npm install --save-dev webpack@2.6.0

3.新建一些需要的文件(html,css,js,img),然后先来看 js 的打包,如图,在新建的index.js中写入内容,index.html中引入的js,是打包后的js。这儿将会遇到一个坑,(还是因为版本问题啊)

小伙伴们可以手动执行一次,我们如何跳过这个坑呢

首先,webpack -v,检查一下你的webpack是哪个版本,如果是2+,3+版本,运行

webpack entry.js bundle.js

如果是4+以上的版本,则运行

webpack entry.js -o bundle.js

然后在浏览器打开你的index.html,就会在页面上看见 你所写的内容,这个是很简单的,它还可以把多个文件打包成一个,例如,我们再建一个module.js(让它作为一个模块文件)

执行命令 webpack entry.js -o bundle.js(根据实际情况使用对应的命令),然后刷新浏览器,就会看到更改后的内容

4.现在我们来看css的打包,新建一个index.css文件

这个时候呢,直接运行 webpack entry.js -o bundle.js 就会报错,因为webpack本身是只对 js 进行打包,如果想打包css,我们就需要通过加载器的方式,把相关的插件引进来之后,才可以进行其他类型的打包处理

打包css,执行以下命令,这两加载器的作用 css-loader 是来识别css文件的,把css作为一个打包处理,style-loader 是把文件内容部生成style标签,让我们的打包样式在浏览器中识别出来。

npm install --save-dev css-loader style-loader

下载成功后我们就需要改一下 entry.js 里面引入的css了

然后执行命令 webpack entry.js  -o bundle.js,然后刷新你的浏览器就可以看到刚才写的css了

5.图片的打包,建一个存放图片的文件夹,如img。图片的打包也是需要安装相关的加载器,执行以下命令安装:

npm install url-loader file-loader --save-dev

补充:url-loader是对file-loader的上层封装,使用时需要配合 file-loader 使用

在我们安装成功之后,执行打包命令,会出现一个报错,之前再打包css时,是不加会报错,到图片这是加上报错把它去掉就好了,然后再执行打包命令就会生效,刷新浏览器,就看到效果了

还有一个是webpack.config.js 这个文件,里面是一些配置,在Vue里面是自动创建的,这儿就得我们手动创建了,已经对应写了备注。

const path = require('path'); // node 内置的模块用来去设置路径的 const HtmlWebpackPlugin = require('html-webpack-plugin'); //自动生成html文件的插件 const CleanWebpackPlugin = require('clean-webpack-plugin'); //清除之前打包的文件 module.exports = { entry: './src/js/entry.js',// 入口文件的配置 output: { // 出口/输出的配置 filename: 'bundle.js', // 输出的文件名 // publicPath:'js/', //设置为index.html 提供资源服务的时候带有强制性 path: path.resolve(__dirname, 'dist/js') }, // 模块,例如解读css,图片转换压缩 module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, { test: /\.(png|jpg|gif)$/, use: [ { loader: 'url-loader', options: { limit: 8192 } } ] } ] }, devServer:{ // contentBase:'dist/' //webpack-dev-server 默认服务于根路径下index。html }, //插件,用于生产模块和各项功能 plugins: [ new HtmlWebpackPlugin({template: './index.html'}), new CleanWebpackPlugin(['dist']), ] };

本文会不断持续更新,如有不足之处,请大家多多指教。此博客为博主原创,未经允许不得转载,转载请著名出处,原文链接

https://blog.csdn.net/qq_40701522/article/details/83504526

转载请注明原文地址: https://www.6miu.com/read-5028430.html

最新回复(0)