使用Grunt替换文件中的文本

时间:2014-12-15 01:10:22

标签: node.js gruntjs

我试图让Grunt替换路径引用,但我不确定我做错了什么。这看起来应该有效。基本上,我将一个Bootstrap文件复制到一个目录并更改@import路径,所以我只是试图替换' bootstrap /'使用新的目标路径' MY / NEW / DEST / PATH / bootstrap'。我不想像以前那样直接使用模块,似乎不必要。一切正常,但取而代之。

var destFilePath = path.join(basePath, file);

// Does the file already exist?
if (!grunt.file.exists(destFilePath)) {

    // Copy Bootstrap source @import file to destination
    grunt.file.copy(

        // Node API join to keep this cross-platform
        path.join(basePath, 'bootstrap/_bootstrap.scss'),
        destFilePath
    );

    // Require node filesystem module, since not a global
    var fs = require('fs');

    // Replace @import paths to be relative to new destination                                
    fs.readFile(destFilePath, 'utf8', function(err, data) {

        // Check for any errs during read
        if (err) {
            return grunt.log.write(err);
        }

        var result = data.replace('/bootstrap\//g', 'bootstrap/bootstrap/');

        fs.writeFile(destFilePath, result, 'utf8', function(err) {
            return grunt.log.write(err);
        });
    });
}

1 个答案:

答案 0 :(得分:1)

你用报价包裹你的正则表达式 - 不要那样做它应该可以正常工作:

var result = data.replace(/bootstrap\//g, 'bootstrap/bootstrap/');