webpack常用加载器 loader
webpack 可以使用 loader 来预处理文件。这允许你打包除 JavaScript 之外的任何静态资源。你可以使用 Node.js 来很简单地编写自己的 loader。
babel-loader
告诉webpack我想要对我的js代码进行兼容性编译
具体配置文件可以新建新建.babelrc, 通过配置一些参数配合webpack进行打包压缩
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.6",
"babel-loader": "^7.1.5",
"babel-plugin-module-resolver": "^3.1.1",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.23.0",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
这里放出推荐配置
{
"sourceMaps": true,
"presets": [
"env",
"react"
],
"plugins": [
"syntax-dynamic-import",
"transform-class-properties",
"transform-object-rest-spread",
["module-resolver", {
"root": ["./src"]
}]
]
}
presets
babel-preset-env
之前配置话需要很多例如babel-preset-es2015, babel-preset-es2016 或者 stage-0
但是现在只需要babel-preset-env就可以解决
babel-preset-react
用于解析jsx
plugin
syntax-dynamic-import
允许解析import()
transform-class-properties
用于解决es6的class的defaultProps={} 不支持的问题
transform-object-rest-spread
允许 Babel transform rest 属性用于对象的解构和对象的自变量.
file-loader
将webpack将所需的对象作为文件发送,并返回其公共URL.
注:如果在组件中用相对路径引入图片,在打包时,webpack不会识别出这是一张图片,不会对其进行路径转换,所以会找不到图片,改用require加载即可。
npm install --save-dev file-loader
在这里放出推荐配置当为生产环境时使用file-loader
{
test: /\.(svg|woff2?|ttf|eot|jpe?g|png|gif)(\?.*)?$/i,
use: IS_PROD ? {
loader: 'file-loader',
options: {
name: '[name].[hash:8].[ext]',
outputPath: 'assets/images/',
},
} : {
loader: 'url-loader'
}
url-loader
url-loader 功能类似于 file-loader,但是在文件大小(单位 byte)低于指定的限制时,可以返回一个 DataURL。
但是可以配置的没有file-loader丰富。
npm install --save-dev url-loader
{
test: /\.(svg|woff2?|ttf|eot|jpe?g|png|gif)(\?.*)?$/i,
use: IS_PROD ? {
loader: 'file-loader',
options: {
name: '[name].[hash:8].[ext]',
outputPath: 'assets/images/',
},
} : {
loader: 'url-loader'
}
css-loader
加载.css
css-loader 解释(interpret) @import 和 url() ,会 import/require() 后再解析(resolve)它们。
引用资源的合适 loader 是 file-loader和 url-loader,你应该在配置中指定
npm install --save-dev css-loader
import css from 'file.css';
{
loader: 'css-loader',
options: { minimize: true },
}
style-loader
通过 style 标签 注入到dom中
建议将 style-loader 与 css-loader 结合使用
npm install style-loader --save-dev
{
loader: 'style-loader',
options: { singleton: true },
}
开发时使用 style-loader 而不是 css-loader 来加载 CSS,这是为了结合 webpack-dev-server 的热更新(hot reload)功能,在本地开发时将所有的 CSS 都直接内嵌至 HTML 中以加快热更新的速度。
postcss-loader
npm i -D postcss-loader
加载 node_moduels 中的 CSS 之前还要使用 postcss-loader 再统一处理一遍,以确保所有进入生产环境的 CSS 都经过了相应的浏览器兼容性处理。
{
loader: 'postcss-loader',
options: {
plugins: () => [autoprefixer({ browsers: 'last 5 versions' })],
sourceMap: true,
},
}
sass-loader
加载sass和scss的file编写到css中
npm install sass-loader --save
{
loader: 'sass-loader',
options: {
includePaths: [
SOURCE_DIR,
],
},
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理