replace-in-file icon indicating copy to clipboard operation
replace-in-file copied to clipboard

replace is not working with path.join

Open indraraj26 opened this issue 1 year ago • 1 comments

index.js

const re = require('replace-in-file');
const path = require('path');
const fs = require('fs');

function replaceFoo() {
  const indexHtmlPath = path.join(__dirname, 'index.html');
  const isIndexHtmlPathExist = fs.existsSync(indexHtmlPath);
  console.log(isIndexHtmlPathExist, 'isIndexHtmlPathExist')
  const option = {
    files: indexHtmlPath, // If i put hardcoded 'index.html' then it is work fine fine
    from: /foo/g,
    to: 'bar',
    countMatches: true,
  };
  console.log(option);
  const output = re.sync(option);
  console.log(output);
}

replaceFoo()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    foo
</body>
</html>

Node -v

v14.18.1

replace-in-file version

    "replace-in-file": "^7.1.0"

image

indraraj26 avatar Feb 02 '24 08:02 indraraj26

I don't know the exact cause but this "replace-in-file": "^6.3.5" is working fine but not with 7x

indraraj26 avatar Feb 04 '24 11:02 indraraj26

Hi, not sure, are the files are passed to Glob, could be something with the newer version of Glob that is used in 7.x. I suggest perhaps trying the disableGlobs setting or specifically the windowsPathsNoEscape setting.

  • https://github.com/adamreisnz/replace-in-file?tab=readme-ov-file#specify-glob-configuration
  • https://github.com/adamreisnz/replace-in-file?tab=readme-ov-file#specify-glob-configuration

Feel free to reopen if those don't help and if you can pin point an error in this library.

adamreisnz avatar Feb 14 '24 05:02 adamreisnz

Yes indeed it is working fine with disableGlobs: true or

 glob: {
    
      //Glob settings here (examples given below)
      dot: true, //To include file names starting with a dot
      windowsPathsNoEscape: true, //To fix paths on Windows OS when path.join() is used to create paths
    },

indraraj26 avatar Feb 20 '24 14:02 indraraj26