gulp修改html资源路径,gulp编译scss时调整url引用路径

本文介绍如何使用gulp插件修改HTML和SCSS中的资源路径。通过自定义gulp任务,实现了在编译scss时自动修正背景图片的相对路径,确保打包后的CSS能正确引用资源。
摘要由CSDN通过智能技术生成

在我们的开发中,我们经常会使用打包工具,对css进行打包,在scss中,我们还经常把模块放在一个单独的文件夹内,这样就会有路径问题(这个问题本文暂时也不解决),比如我们把scss文件放在src/style目录中,但是编译打包完之后的css放在dist目录下,这样就会导致原本样式中的url路径在最终的css中不正确。本文就试图写一个插件来调整这个引用路径。

gulp的插件怎么写?

gulp的插件,其实是放在pipe中作为参数的函数,它处理的要么是stream要么是buffer,在我们这个场景里面,stream就是所有的整个流程里面的信息,buffer就是当前正在处理的这个文件的信息,所以我们要处理的,是buffer,可以简单(而不正确)的理解为,一个buffer就对应一个文件。

理解这点之后,在继续往下看。我们通过在pipe中截获文件信息,包括文件的内容,通过我们自己的代码,修改内容或文件信息(比如文件名),把修改过的buffer返回给pipe,这样就达到了我们gulp插件的目的。

基于这种思想,我写了一个gulp插件的模块,你如果以后要自己写,可以方便的使用这个模块:

// modifyStreamContent.js

import through from "through2"

import {log} from "../loader"

export default function modifyStreamContent(modify) {

return through.obj(function(file, endcoding, callback) {

if(file.isNull()) {

this.push(file)

return callback()

}

if(file.isStream()) {

log("streaming not supported", "error")

return callback()

}

var content =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值