【问题标题】:How can I find text in a file and replace it?如何在文件中查找文本并替换它?
【发布时间】:2021-06-04 23:25:00
【问题描述】:

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

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

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()

【问题讨论】:

    标签: javascript node.js gulp


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 2012-12-10
      • 2012-11-10
      • 1970-01-01
      相关资源
      最近更新 更多