如何在文件中查找文本并替换它?

时间:2021-06-04 23:25:00

标签: javascript node.js gulp

我需要为 gulp 编写一个函数。
该功能应该:
1. 打开文件 (style.min.css)
2. 查找包含给定文本的所有行 (img/sprite.png)
3. 将所有找到的行替换为 (../img/sprite.png)

为了简化任务,我添加了一个插件(替换文件
我不擅长 Node.js 但我尝试过...
请帮我改正。
如果您愿意,您可以展示如何在不使用插件的情况下执行此操作(文件内替换)。
但是你也可以使用插件...

const build = ('build/')
const replace = require('replace-in-file')
const config = {
    build: {
        style: build + 'css'
    }
}

function fixSprites() {
    const results = replace.sync({
        files: config.build.style + '/style.min.css',
        from: 'img/sprite.png',
        to: '../img/sprite.png',
        countMatches: true,
    })
    return src(config.build.style + '/style.min.css')
        .pipe(replace(results))
}

exports.fixSprites = fixSprites()

1 个答案:

答案 0 :(得分:0)

我使用了一个插件'replace-in-file'!
这是开箱即用的 gulp 解决方案
将所有类似类型的行替换为其他行。
示例:将 img/sprite.png 替换为 ../img/sprite.png

enter image description here

const { series } = require('gulp')
const replace = require('replace-in-file')

function updateRedirects(done) {
    replace({
        files: 'build/css/style.min.css',
        from: /img\/sprite.png/g, // img/sprite.png – Replace this.
        to: '../img/sprite.png', // ../img/sprite.png – Replace with this.
        countMatches: true,
    }, done)
}

exports.build = series(updateRedirects) // Start
相关问题