We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
loader 可以配置以下参数:
test
use
include
exclude
query
loader 是链式调用,所以执行顺序是从右到左的。
presets 属性告诉 Babel 要转换的源码使用了哪些新的语法特性,一个 Presets 对一组新语法特性提供支持,多个 Presets 可以叠加。 Presets 其实是一组 Plugins 的集合,每一个 Plugin 完成一个新语法的转换工作。Presets 是按照 ECMAScript 草案来组织的。
presets
需要安装:
//安装插件 --@babel/core是babel核心库 npm install babel-loader @babel/core -D //同时要按装,babel-loader只是打通webpack的一个桥梁,并不会转义代码,需要借助@babel/preset-env 来做语法的转换 npm install @babel/preset-env -D //还有继续安装@babel/polyfill -- 作用是帮助低版本的浏览器弥补缺失的变量以及函数,同时可以在options配置,根据业务代码来做低版本的缺失弥补,这样打包代码可以做到精简,注意的是,这个插件只适合做业务代码带包,因为会污染全局 npm install @babel/polyfill -D
.babelrc
weback.config.js
module.exports = { module: { rules: [ { test: /\.js$/, use: 'babel-loader' } ] } };
项目根目录下增加 .babelrc 配置文件 .babelrc
{ "presets": ["@babel/preset-env","@babel/preset-react"] }
module.exports = { module: { rules: [ { test: /\.js$/, use: { loader: 'babel-loader', options: { "presets": ["@babel/preset-env", "@babel/preset-react"] } } } ] } };
css最基本的编译要依靠于style-loader、css-loader这两个加载器,所谓最基本,就是在不考虑使用css预处理器以及css后处理器的情况。预处理器包括less、scss、sass、stylus,后处理器如postcss的autoprefixer等。首先我们先弄明白各加载器的作用:
webpack.config.js
module: { rules: [ { test: /\.css$/, use: ["style-loader", "css-loader"] } ]; }
autoprefixer 是 css 后处理器 postcs s提供的一个对 css3 中个别属性在不同浏览器下需要添加浏览器前缀的样式处理工具,因此在使用 autoprefixer 之前,我们需要安装 postcss-loader 来加载它。
module: { rules: [{ test: /\.css$/, use: [ { loader: "style-loader" }, { loader: "css-loader",options: { importLoaders: 1 } },//importLoaders解决由于css-loader处理文件导入的方式导致postcss-loader不能正常使用的问题 { loader: "postcss-loader" } //指定postcss加载器 ], exclude: /node_modules/ }] }
根目录下新建 postcss.config.js 配置文件:
postcss.config.js
module.exports = { plugins: [ require("autoprefixer")({overrideBrowserslist:'last 5 version'}) // overrideBrowserslist最终生成的css兼容最近的N个版本 ] }
需要注意,由于css-loader处理文件导入的方式,因此加载器postcss-loader不能与CSS模块一起使用。 为了使它们正常工作,可以添加 css-loader 的importLoaders选项。
也可以直接写在loader里:
{ loader: 'postcss-loader', options: { plugins: loader => [ require('autoprefixer')({overrideBrowserslist: "last 5 version"}) ] } }
module.exports = { module: { rules: [ { test: /\.less/, use: ['style-loader', 'css-loader', 'less-loader'] } ] } };
loader配置的顺序不可调换,因为 less-loader 是把 less 转换成 css,而 css-loader 是解析处理 css 里的 url 路径,并将 css 文件转换成一个模块,style-loader 是将 css 文件变成 style 标签插入到 head 中。
如果要转换 less 或者 sass,那么除了 loader,还需要安装 less 或者 sass:
npm install less less-loader -D
安装 mini-css-extract-plugin,将 'style-loader' 修改为 {loader: MiniCssExtractPlugin.loader}
'style-loader'
{loader: MiniCssExtractPlugin.loader}
const MiniCssExtractPlugin = require('mini-css-extract-plugin'); module.exports = { module: { rules: [ { test: /\.less/, use: [{loader: MiniCssExtractPlugin.loader}, 'css-loader', 'less-loader'] } ] }, plugins: [ new MiniCssExtractPlugin({ filename: 'css/[name].css' }) ] };
此插件为每个包含 CSS 的 JS 文件创建一个单独的 CSS 文件,并支持 CSS 和 SourceMap 的按需加载。 注意:这里说的每个包含 CSS 的 JS 文件,并不是说组件对应的 JS 文件,而是打包之后的 JS 文件.
module.exports = { module: { rules: [ { test: /.(png|jpg)$/, // 图片或者字体等文件 use: [ { loader: "file-loader", options: { name: "[name]_[hash].[ext]", outputPath: "images/" } } } ] } ] } };
module.exports = { module: { rules: [ { test: /.(png|jpg)$/, // 图片或者字体等文件 use: [ { loader: 'url-loader', options: { limit: 10240, // 处理成 base64 的边界值,单位是字节 outputPath: 'images' //如果希望图片存放在单独的目录下,那么需要指定outputPath } } ] } ] } };
The text was updated successfully, but these errors were encountered:
Sorry, something went wrong.
No branches or pull requests
常用 loaders
loader 的使用
loader 可以配置以下参数:
test
: 匹配处理文件的扩展名的正则表达式use
: loader 名称include
/exclude
: 手动指定必须处理的文件夹或屏蔽不需要处理的文件夹query
: 为 loader 提供额外的设置选项loader 是链式调用,所以执行顺序是从右到左的。
转换脚本语言
babel-loader
presets
属性告诉 Babel 要转换的源码使用了哪些新的语法特性,一个 Presets 对一组新语法特性提供支持,多个 Presets 可以叠加。 Presets 其实是一组 Plugins 的集合,每一个 Plugin 完成一个新语法的转换工作。Presets 是按照 ECMAScript 草案来组织的。需要安装:
1.配置
.babelrc
weback.config.js
项目根目录下增加
.babelrc
配置文件.babelrc
2. 直接配置在 babel-loader 中
样式文件的转换
css最基本的编译要依靠于style-loader、css-loader这两个加载器,所谓最基本,就是在不考虑使用css预处理器以及css后处理器的情况。预处理器包括less、scss、sass、stylus,后处理器如postcss的autoprefixer等。首先我们先弄明白各加载器的作用:
css-loader
webpack.config.js
style-loader
postcss-loader
autoprefixer 是 css 后处理器 postcs s提供的一个对 css3 中个别属性在不同浏览器下需要添加浏览器前缀的样式处理工具,因此在使用 autoprefixer 之前,我们需要安装 postcss-loader 来加载它。
webpack.config.js
根目录下新建
postcss.config.js
配置文件:也可以直接写在loader里:
loader配置的顺序不可调换,因为 less-loader 是把 less 转换成 css,而 css-loader 是解析处理 css 里的 url 路径,并将 css 文件转换成一个模块,style-loader 是将 css 文件变成 style 标签插入到 head 中。
如果要转换 less 或者 sass,那么除了 loader,还需要安装 less 或者 sass:
分离 css 文件
安装 mini-css-extract-plugin,将
'style-loader'
修改为{loader: MiniCssExtractPlugin.loader}
webpack.config.js
加载文件
file-loader
webpack.config.js
url-loader
webpack.config.js
参考文档
The text was updated successfully, but these errors were encountered: