通过npm脚本替换build后的文件中的某些字符串

190 阅读1分钟

问题描述:代码上线后检测到有外网网址,存在安全隐患,所以需要查找并替换。

  • 第一步:
  • package.json中新建脚本命令,如下:
"scripts": {
    "build": "node build/build.js && npm run replace",
    "replace": "node replace-in-js-files.js"
}

image.png

image.png

  • 第二步:根目录新建replace-in-js-files.js文件,内容如下:
const fs = require('fs-extra');
const glob = require('glob');

// 要搜索的文件模式
const fileGlob = 'dist/**/*.js';
// 要搜索和替换的正则表达式和替换字符串
const regex = /\b(www.jacklmoore.com|www.facebook.com|github.com|twitter.com)\b/g;
const replaceWith = '#';

// 扫描文件并替换内容
glob(fileGlob, (err, files) => {
  if (err) {
    console.error('An error occurred:', err);
    process.exit(1);
  }
  files.forEach(filePath => {
    let content = fs.readFileSync(filePath, 'utf8');
    content = content.replace(regex, replaceWith);
    fs.writeFileSync(filePath, content, 'utf8');
  });
  console.log('Replacement completed.');
});
  • 第三步:打包即可。(需要安装fs-extra,glob两个包,注意版本)
npm i fs-extra glob -D