高级前端-webpack

什么是webpackTapable是webpack的底层依赖loader让webpack可以处理除了js和json文件以外的别的类型的文件module.rules.{use: '', test: ''} 目前用的是chainWebpack可以链式调用loader和plugin,并且可以修改对应loader或者插件的属性webpack的主要配置Entry Output loader pluginwebpack代码分离多入口 splitChunks 动态导入为什.
摘要由CSDN通过智能技术生成

什么是webpack:webpack is a module bundler

Tapable是webpack的底层依赖

loader让webpack可以处理除了js和json文件以外的别的类型的文件

module.rules.{use: '', test: ''} 目前用的是chainWebpack可以链式调用loader和plugin,并且可以修改对应loader或者插件的属性

webpack的主要配置

  1. Entry
  2. Output
  3. loader
  4. plugin

webpack代码分离

  1. 多入口
  2. splitChunks
  3. 动态导入

为什么要用webpack

从Entry文件开始,加载并处理所有的文件,最终转为bundle.js文件

webpack怎么用

1. 全局安装webpack + webpack-cli

2. 全局直接使用webpack xxx.js

3. 项目中安装webpack + webpack-cli, 使用npx webpack,默认入口文件./index.js,默认配置文件:webpack.config.js

4. 可以自己创建一个webpack.config.js用来修改webpack的配置

5. 也可以重定义webpack.config.js的名字 => vue.config.js,但是打包命令得这么写:npx webpack --config vue.config.js

6. 为了不用每次都去调用npx,可以使用npm script去做优化,在package.json中配置相关script,例如:

script: {
    build: 'webpack'
}

使用npm run build去代替npx webpack; script的执行会优先从当前所在项目的node_module中去找相关指令

7. webpack-cli的作用是为了可以在命令行运行webpack,不装的话不能运行

8. webpack是基于node.js去编写的,因为打包的功能需要去遍历项目中用到的所有文件,需要用到一些原生功能,js是做不到的,所以用node.js是很容易实现的

打包结果命令行输出分析

1. Hash:本次打包唯一的hash值

2. asset: 打包出的文件名

3. chucks: 打包的文件的唯一值得集合

4. chuck names: 打包文件的名字的集合

5. chuck names怎么来的:main

6. entrypoint: 入口文件

7. webpack.config.js的默认mode是production,也可以设置成development,如果是production会默认压缩代码,development不会压缩代码

loader

模块不一定是js文件,也有可能是css文件,图片文件,webpack默认只知道打包js模块文件,其他类型的文件的打包就需要借助loader

module: {
    rules: [{
        test: /\.jpg$/
        use: {
            loader: 'file-loader'
        }
    }]
}

1. loader的作用过程,当webpack遇到非js模块的时候,去找可以识别当前模块的loader,对应的loader会把对应的module文件编译成对应的文件放到dist目录下面

2. vue项目中动态引入本地图片,需要require或者import,应该就是loader不会再编译???这边有

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Webpack 是一个现代 JavaScript 应用程序的静态模块打包器。它是一个模块打包工具,可以将多个模块打包成一个文件,以便在浏览器中使用。Webpack 可以处理 JavaScript、CSS、图片等多种资源,并且可以通过插件机制进行扩展。 对于高级前端开发人员来说,掌握 Webpack 是非常重要的。以下是一些关于 Webpack 的常见问题和答案: 1. Webpack 的主要功能是什么? Webpack 的主要功能是将多个模块打包成一个或多个文件,以便在浏览器中使用。它可以处理 JavaScript、CSS、图片等多种资源,并且可以通过插件机制进行扩展。 2. 如何安装 Webpack? 可以使用 npm 安装 Webpack。在命令行中运行以下命令即可: ``` npm install webpack --save-dev ``` 3. 如何配置 WebpackWebpack 的配置文件是一个 JavaScript 文件,通常命名为 webpack.config.js。在配置文件中,可以指定入口文件、输出文件、加载器、插件等信息。以下是一个简单的 Webpack 配置文件示例: ```javascript module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: __dirname + '/dist' }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader' } }, { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] } ] }, plugins: [ new HtmlWebpackPlugin({ template: './src/index.html' }) ] }; ``` 4. Webpack 的加载器是什么? Webpack 的加载器是用于处理各种类型的文件的工具。例如,可以使用 babel-loader 处理 ES6 代码,使用 css-loader 处理 CSS 文件,使用 file-loader 处理图片等。 5. Webpack 的插件是什么? Webpack 的插件是用于扩展 Webpack 功能的工具。例如,可以使用 HtmlWebpackPlugin 插件生成 HTML 文件,使用 UglifyJsPlugin 插件压缩 JavaScript 代码等。 6. 如何在 Webpack 中使用 ES6 模块? Webpack 默认支持 ES6 模块。可以在入口文件中使用 import 和 export 关键字来导入和导出模块。 7. 如何在 Webpack 中使用 CSS? 可以使用 css-loader 和 style-loader 来处理 CSS 文件。css-loader 用于加载 CSS 文件,style-loader 用于将 CSS 插入到 HTML 页面中。 8. 如何在 Webpack 中使用图片? 可以使用 file-loader 或 url-loader 来处理图片。file-loader 可以将图片复制到输出目录中,url-loader 可以将图片转换为 base64 编码并嵌入到 JavaScript 文件中。 9. 如何在 Webpack 中使用 React? 可以使用 babel-loader 来处理 JSX 语法,并使用 react-hot-loader 实现热更新。以下是一个简单的 Webpack 配置文件示例: ```javascript module.exports = { entry: [ 'react-hot-loader/patch', './src/index.js' ], output: { filename: 'bundle.js', path: __dirname + '/dist' }, module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: { loader: 'babel-loader', options: { presets: ['@babel/preset-react'] } } } ] }, plugins: [ new webpack.HotModuleReplacementPlugin() ], devServer: { hot: true } }; ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值