Webpack基础操作

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
在这里插入图片描述
从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

接下来我们简单为大家介绍 Webpack 的安装与使用。

安装 Webpack

在安装 Webpack 前,你本地环境需要支持 node.js。
通过npm下载:
创建node项目 执行命令npm init -y 生成packge.json
在当前目录安装本地webpack

npm install webpack --save

全局安装

npm install webpack -g

在webpack 3中,webpack本身和它的CLI以前都是在同一个包中,但在第4版中,他们已经将两者分开来更好地管理它们。
所以当安装的webpack版本为4以上时还需安装webpack-cli
局部

npm install webpack-cli -d

全局

npm install webpack-cli -g

注:如果觉得npm安装速度慢,还可以使用 cnpm 安装 webpack
此时创建好的项目目录如下
在这里插入图片描述
接下来我们使用 webpack 命令来打包:

webpack ./src/index.js -o ./dist/bundle.js

执行命令后如果是这样则打包成功
在这里插入图片描述
这时候会发现项目下的dist目录中多了一个bundle.js文件
在这里插入图片描述
bundle.js文件中是webpak打包好的文件,这个文件中的代码是从index.js编译过来的浏览器认识的代码

从 webpack v4.0.0 开始,可以不用引入一个配置文件。然而,webpack 仍然还是高度可配置的。在开始前你需要先理解四个核心概念:

  • 入口(entry)
  • 输出(output)
  • loader
  • 插件(plugins)

接下来配置一个webpack.config.js文件,更加方便进行打包操作
在项目下创建一个webpack.config.js文件
文件中代码如下:

const path = require('path');

//  这个配置文件  本质就是一个js文件  通过node中的模块操作  向外暴漏一个配置对象

module.exports = {
    //  入口文件  需要打包的文件
    entry:path.join(__dirname,'./src/index.js'),
    //  输出文件的相关配置
    output:{
        path:path.join(__dirname,'./dist'),
        filename:'bundle.js'  //  指定输出文件名
    }
}

将这个文件配置好后只需运行命令webpack就能对主入口文件进行打包
在这里插入图片描述
到这里虽然打包方便了很多,但是每次修改代码还是需要手动打包,现在想要自动编译打包可以使用webpack-dev-server这个工具。
将webpack-dev-server这个工具安装的项目的本地开发依赖中

npm install webpack-dev-server -D

我在这里遇到一些问题
由于之前的webpack为全局安装,可以手动打包,但在运行webpack-dev-server时遇见了如下问题:
在这里插入图片描述
解决方法:
我下载了局部webpack

npm install webpack
npm install --save-dev webpack-cli
npm install webpack-dev-server

注意:如果遇到一下情况可能是webpack.config.js中config.devServer 配置出现了问题
在这里插入图片描述
如果遇到node.js找不到xxx 这个模块

按顺序来。
1.检查一下是否拼写错误。
2.这个模块是自己写的,是的话。检查一下路径是否正确。

3.如果是导入的模块。用 npm list这个命令输出一下,是否有这个模块。没有的话,安装一下 (nodejs总文件夹下输入 npm install xxxx)
4.另外注意一下,全局模块安装目录默认为users/用户/node_modules 下面 。而你的项目读取的模块是你的安装目录(有可能这两个目录是不同的)。所以有时候会出现,没有这个模块,安装完后,还是继续报找不到模块的错误

接下来做一些配置执行打包后直接打开页面
在webpack.config.js配置一下代码

    devServer:{
        open:true,  //自动打开浏览器
        port:3000,
        contentBase:'src',  //指定托管的根目录
        hot:true  //启用热更新
    }

接下来要将页面也放到内存中
要用到html-webpack-plugin插件

npm install html-webpack-plugin -D

webpack.config.js中配置

const webpack = require('webpack');

const htmlWebpackPlugin = ('html-webpack-plugin');
    plugins:[//配置插件的节点
        new webpack.HotModuleReplacementPlugin(),//new一个热更新的模块对象
        new htmlWebpackPlugin({
            template:path.join(__dirname,'./src/index.html'),
            filename:'index.html'  //指定内存中生成的页面的名称
        })
    ]

打包css文件
要用到第三方插件style-loader和css-loader

npm i style-loader css-loader -D

webpack.config.js中配置

module:{
        rules:[   //所有第三方模块的匹配规则
            {test:/\.css$/,use:['style-loader','css-loader']}
        ]
    }

创建css文件写一些css样式index.css
在index.js中导入

import './css/index.css';

css预处理less
下载less和less-loader

npm i less --save
npm i less-loader -D

webpack.config.js中配置

{test:/\.less$/,use:['style-loader','css-loader','less-loader']}

编写一个less文件

@width:200px;
@height:500px;

#app{
    width: @width;
    height: @height;
}

在index.js中导入

import './css/index.less';

css预处理scss
下载scss依赖加载器

npm install sass-loader -D
npm install node-sass -D

webpack.config.js中配置规则

{test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}

打包图片
下载插件

npm i url-loader file-loader -D

css

$nav-color: #F90;
#app {
  $width: 500px;
  width: $width;
  height: 200px;
  background: url(../img/banner.png);
}

webpack.config.js中配置规则

{test:/\.(jpg|png|gif|bmp|jpeg)$/,use:'url-loader?limit=18896'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值