2.2.3 使用webpack loader

简介: loader 是作用于应用中资源文件的转换行为。它们是函数(运行在 Node.js 环境中),接收资源文件的源代码作为参数,并返回新代码。举个栗子,可以通过jsx-loader将 Reac t的 JSX 代码转换为 JS 代码,从而可以被浏览器执行style-loader:将 ...

loader 是作用于应用中资源文件的转换行为。它们是函数(运行在 Node.js 环境中),接收资源文件的源代码作为参数,并返回新代码。
举个栗子,可以通过
jsx-loader将 Reac t的 JSX 代码转换为 JS 代码,从而可以被浏览器执行
style-loader:将 CSS 代码以 <style> 标签的形式插入到页面上从而生效
css-loader:检查 CSS 代码中的 import 语句找到依赖并合并,大部分情况下,两者搭配使用

通过 npm init 在项目目录下生成package.json文件,安装loader

npm install style-loader css-loader --save-dev

我们在入口文件 index.js 中通过 require 引入 index.css

index.js

var text = require("./hello");
console.log(text);

require('style-loader!css-loader!./index.css');
document.body.appendChild(document.createElement('div'));

类似style!css!,这样的 xxx! 写法是为了指定特定的 loader。这里告诉 webpack 使用 style-loader ,css-loader 这两个 loader 对 index.css 中的内容进行处理。
下一章通过配置文件 webpack.config.js 对 webpack 构建行为进行配置。

执行构建命令:

webpack ./index.js bundle.js
1240
效果图

页面上最终并没有插入<link>标签,结果文件中也没有 CSS文件,却通过一个引入一个 JS 文件实现了样式的引入。这正是 webpack 的特点之一, 任何类型的模块(资源文件),理论上都可以通过被转化为 JavaScript 代码,实现与其他模块的合并和加载

这里通过 JavaScript 加载 CSS 是借助了 style-loader 的能力(将 CSS 代码以 <style> 标签的形式插入到页面中,标签内容通过 JavaScript 生成),与传统的页面直接插入标签相比,该方法存在着不可忽视的缺点,样式内容的生效时间被延后。

解决办法:借助 extract-text-webpack-plugin 插件,webpack 可以在打包时将样式内容抽取并输出到额外的 CSS 文件中,然后在页面中直接引入结果 CSS 文件即可。

目录
相关文章
|
6天前
|
缓存 JSON JavaScript
Webpack 传递给 Loader 的原始内容是一个 UTF-8 格式编码的字符串
本文详细介绍了Webpack中Loader的概念及其重要性。Webpack仅支持处理JS和JSON文件,而对于CSS、图片等其他类型文件,则需要Loader来转换。文章列举了多种常见Loader,如css-loader、style-loader、babel-loader等,并提供了具体配置示例。此外,还介绍了如何自定义Loader,包括初始化项目、实现基本功能及处理异步操作等内容。通过本文,读者可以全面了解Loader的作用及其实现方法。
16 3
|
2月前
|
缓存 JSON JavaScript
用Webpack写一个Loader
在Webpack写一个Loader
14 1
|
24天前
webpack——You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
webpack——You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.
73 0
|
4月前
|
Web App开发 JSON 前端开发
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
171 0
|
4月前
|
JSON 前端开发 JavaScript
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)(上)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
81 0
|
4月前
|
前端开发 JavaScript
Webpack中的Loader和Plugin:理解与使用
Webpack中的Loader和Plugin:理解与使用
|
4月前
|
前端开发 JavaScript 编译器
webpack loader实战——手撕8个常用loader
webpack loader实战——手撕8个常用loader
|
前端开发 JavaScript Shell
Webpack中常见的Loader?解决了什么问题?
Webpack中常见的Loader?解决了什么问题?
85 0
|
4月前
|
前端开发 JavaScript
webpack 核心武器:loader 和 plugin 的使用指南(下)
webpack 核心武器:loader 和 plugin 的使用指南(下)
webpack 核心武器:loader 和 plugin 的使用指南(下)
下一篇
DDNS