01

作者: aE_0ff7 | 来源:发表于2020-01-14 21:42 被阅读0次


webpack:模块打包器 一个文件就是一个模块

核心概念:

![image.png](https://img.haomeiwen.com/i19975030/6f9022197d923660.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

打包的入口,如main.js

输出,打包之后最后变成的东西

loader:加载器,用来解析各种不同的文件

插件:压缩

安装webpack

npm install webpack -g | npm install webpack -D

npm install webpack-cli -g | npm install webpack-cli -D

demo:

创建一个文件并初始化npm init

创建一个index.js

创建一个utils文件件,在下面创建test.js 可以写js代码

在index里引入test,

执行webpack index.js 打包操作

出现dist文件夹

要创建一个index.html文件,并引入打包的main.js

在浏览器就可以检验代码

配置webpack.config.js文件

需要配置一个基础的入口位置和出口位置,要引入path模块来使用路径,filename为打包好的名字

在package.json下做的命令简化操作

npm run build

PM:

plugin:各种打包、工程化的操作等等,这个是一个数组,要用new的方式创建

插件:html-webpack-plugin 简化打包好的html文件的创建

1.安装 npm install html-webpack-plugin -D

2.引入到webpack.config

3.创建一个public下的index.html

4.要把打包的结果动态插入到public里的index.html

5.在module.exports里配置plugins: [

new HtmlWebpackPulgin({

template: path.join(__dirname, './public/index.html') // 把打包的结果和这里的index.html进行组装,然后到dist

})

]

loaders:对文件代码进行各种加载和编译

在src下创建一个assets下css下style.css并引入到main.js

解析style样式需要安装style-loader css-loader

在webpack.config里的module.exports里配置module

module: {

rules: [ // 规则

{

test: /\.css$/, // 用正则方式判断文件

use: [

{ loader: 'style-loader' },

{ loader: 'css-loader' }

]

}

]

}

解析sass 要安装 sass-loader node-sass

正则简写方法判断css和scss

热更新:devServer

保存时页面自动更新

webpack-dev-server插件

安装:npm install webpack-dev-server (-D || -g)

在webpack.config下的module.exports配置

devServer: {

port: '8888', // 端口

contentBase: path.join(__dirname, './dist'), // 指定静态资源根目录 这里指向了dist

hot: true // 允许热更新

}

启动服务时 webpack-dev-server (加--open为自动打开浏览器)

这里指向了dist文件夹,所以public里的变化不会触发热更新,如要public里的静态index.html保存也触发的话需要改contentBase指向为public,并且output下指向的位置也要改

如果修改public里的代码也不会引起热更新,因为他是静态资源文件,并没有参与打包

热更新原理:在启动服务的时候,浏览器为客户端,devServer为服务端,在底层他们之间有一个WebSocket的通信,如果代码改变并保存,会找出变化并通知webpack进行更新,把代码发给客户端,客户端即不需要更新既可以收到代码

使用npm run serve启动项目

相关文章

网友评论

      本文标题:01

      本文链接:https://www.haomeiwen.com/subject/aiffbctx.html