
---------------------------------------------------------------------------------------------------------------------------------


---------------------------------------------------------------------------------------------------------------------------
- 安装 安装报错的话可以把后边的 --save-dev 删掉
-
- npm install webpack webpack-cli --save-dev //安装
-
- npm install css-loader style-loader –save-dev //css
-
- npm install file-loader –save-dev //loader
-
- npm install html-webpack-plugin --save-dev //plugin
-
- npm i less less-loader -D //less
-
- npm install sass-loader -D //sass
-
- npm i url-loader file-loader -D //图片
-
-
- 在黑窗口中执行 命令,查看webapck版本
- npm webpack -v
-
- 卸载
- 删除局部webpack-cli
- npm uninstall webpack-cli
- 删除全局webpack
- npm uninstall -g webpack
- 删除本地wbpack
- npm uninstall webpack


-
- const path = require('path');
- console.log(path.resolve(__dirname, 'dist')) // e:\big ---project\Webpack project\test01\dist
-
- const HTMLPlugin = require('html-webpack-plugin');
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-
- module.exports = {
- mode: "development", //模式: "production" | "development" | "none"
- entry: './src/index.js', //入口
- output: { // 输出
- filename: 'main.js', // 打包后的文件名字
- //filename: 'main.[hash].js', // 打包后的文件名字变成带有哈希值
- //filename: 'main.[hash:8].js', // 文件的哈希值只显示8位
- path: path.resolve(__dirname, 'dist') // 路径必须是一个绝对路径, --dirname:是使用当前目录出生成一个dist文件夹
- },
- devServer: { // 开发服务配置
- port: 3000,
- progress: true, // 是否显示加载进度条
- contentBase: './dist', // 映射地址
- compress: true // 是否压缩
- },
- plugins: [ // 附加插件
- new HTMLPlugin({ // 打包html文件
- template: './src/index.html', // 模板文件
- filename: 'index.html', // 打包出来的文件名
- minify: {
- removeAttributeQuotes: true, // 删除html页面的双引号
- collapseWhitespace: true, // 将html页面压缩成一行
- },
- hash: true // 将文件打包成哈希包
- }),
- new MiniCssExtractPlugin({ // 打包css文件
- filename: "index.css" // 抽离出来的文件名字
- })
- ],
- module: { // 模块配置
- rules: [ //规则
- /* css-loader 解析 @import这种语法
- style-loader 它是将css插入到head的标签中
- loader的执行顺序是从右向左执行
- */
- { // 解析 css文件
- test: /\.css$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'postcss-loader'
- ]
- },
- // 图片
- {
- test: /\.(png|jpg|jpeg|gif)$/i,
- type: 'asset', //小于8k打包成base64,小图打包进js里,可以 减少http请求次数 但是转成base64字符串会让体积增大20%-30% 所以大于8k还是直接打包进静态资源目录中
- generator: {
- filename: 'assets/[hash][ext][query]'
- }
- },
- { // 解析 less文件
- test: /\.less$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'less-loader',
- 'postcss-loader'
- ]
- },
- { // 解析 scss文件
- test: /\.less$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- "scss-loader",
- 'postcss-loader'
- ]
- }
- ]
- }
- };

例如 b.js 和 c.js文件 把他俩引进 index.js文件



--------------------------------------------------------------------------------------------------------------------------------
不需要其他的引入之类的

- // 基于commonjs规范定义配置
- module.exports = {
- // 指定环境
- mode: 'development',
- // 入口
- entry: './src/index.js',
- // 出口
- output: {
- // 指定发布的文件名称
- filename: './main.js'
- },
- // 配置module属性
- module: {
- // 通过rules定义加载机的规则
- rules:[
- {
- test:/\.css$/,
- use: ["style-loader", "css-loader", "sass-loader"]
- },
- {
- test: /\.(png|jpg|jpeg|gif)$/i,
- type: 'asset', //小于8k打包成base64,小图打包进js里,可以 减少http请求次数 但是转成base64字符串会让体积增大20%-30% 所以大于8k还是直接打包进静态资源目录中
- generator: {
- filename: 'assets/[hash][ext][query]'
- }
- }
-
-
- ]
- }
- }
-
-
- const path = require('path');
- console.log(path.resolve(__dirname, 'dist')) // e:\big ---project\Webpack project\test01\dist
-
- const HTMLPlugin = require('html-webpack-plugin');
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
-
- module.exports = {
- mode: "development", //模式: "production" | "development" | "none"
- entry: './src/index.js', //入口
- output: { // 输出
- filename: 'main.js', // 打包后的文件名字
- //filename: 'main.[hash].js', // 打包后的文件名字变成带有哈希值
- //filename: 'main.[hash:8].js', // 文件的哈希值只显示8位
- path: path.resolve(__dirname, 'dist') // 路径必须是一个绝对路径, --dirname:是使用当前目录出生成一个dist文件夹
- },
- devServer: { // 开发服务配置
- port: 3000,
- progress: true, // 是否显示加载进度条
- contentBase: './dist', // 映射地址
- compress: true // 是否压缩
- },
- plugins: [ // 附加插件
- new HTMLPlugin({ // 打包html文件
- template: './src/index.html', // 模板文件
- filename: 'index.html', // 打包出来的文件名
- minify: {
- removeAttributeQuotes: true, // 删除html页面的双引号
- collapseWhitespace: true, // 将html页面压缩成一行
- },
- hash: true // 将文件打包成哈希包
- }),
- new MiniCssExtractPlugin({ // 打包css文件
- filename: "index.css" // 抽离出来的文件名字
- })
- ],
- module: { // 模块配置
- rules: [ //规则
- /* css-loader 解析 @import这种语法
- style-loader 它是将css插入到head的标签中
- loader的执行顺序是从右向左执行
- */
- { // 解析 css文件
- test: /\.css$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'postcss-loader'
- ]
- },
- // 图片
- {
- test: /\.(png|jpg|jpeg|gif)$/i,
- type: 'asset', //小于8k打包成base64,小图打包进js里,可以 减少http请求次数 但是转成base64字符串会让体积增大20%-30% 所以大于8k还是直接打包进静态资源目录中
- generator: {
- filename: 'assets/[hash][ext][query]'
- }
- },
- { // 解析 less文件
- test: /\.less$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- 'less-loader',
- 'postcss-loader'
- ]
- },
- { // 解析 scss文件
- test: /\.less$/,
- use: [
- MiniCssExtractPlugin.loader,
- 'css-loader',
- "scss-loader",
- 'postcss-loader'
- ]
- }
- ]
- }
- };
不需要其他的引入之类的


--------------------------------------------------------------------------------------------------------------------------------

例如 创建一个css的文件写样式 创建html 引入打包后的js创建div包裹class webpack内容同上


--------------------------------------------------------------------------------------------------------------------------------

引入
- // 引入图片
- let img_url = require('./assets/logo.png');
- let img2_url = require('./assets/QQ截图20230904182803.jpg');
-
- // 创建图片元素
- let img = new Image();
- let img2 = new Image();
-
-
- // 设置图片的路径
- img.src = img_url; //打包显示
- img2.src = img2_url.default; //打包不显示
-
- // 上树
- document.body.appendChild(img);
- document.body.appendChild(img2);
webpack.config.js
- // 基于commonjs规范定义配置
- module.exports = {
- // 指定环境
- mode: 'development',
- // 入口
- entry: './src/index.js',
- // 出口
- output: {
- // 指定发布的文件名称
- filename: './main.js'
- },
- // 配置module属性
- module: {
- // 通过rules定义加载机的规则
- rules:[
- {
- test:/\.css$/,
- use: ["style-loader", "css-loader", "sass-loader"]
- },
- {
- test: /\.(png|jpg|jpeg|gif)$/i,
- type: 'asset', //小于8k打包成base64,小图打包进js里,可以 减少http请求次数 但是转成base64字符串会让体积增大20%-30% 所以大于8k还是直接打包进静态资源目录中
- generator: {
- filename: 'assets/[hash][ext][query]'
- }
- }
-
-
- ]
- }
- }
-


参考: