用nodejs 替换文件中所有图片的url

因业务需求,大量文件需要替换url到不同的环境。

所以用nodejs写了这个。本来想用python写,但是大部分同事只有nodejs环境。

主要的命令node rurl.js -new http://www.g.cn/

替换原有.png .jpg图片图片路劲到 http://www.g.cn/

比如原来是 background:url(http://www.yoursite.com/a/b/c/d.png);

会指定到

background:url(http://www.g.cn/d.png);

如果某url加上!important.
如:

background:url(http://www.yoursite.com/a/b/c/d.png) !important;
则这条不会替换。
代码灵活应用,你可以改成替换其他东西。

/*** replace image url script.* you can input command like "node rurl.js -new http://www.g.cn/" to use it.* any css includes "!important" will not be effected.*/
//your new replace url
var arguments = process.argv.slice(2);
var command = arguments[0]+"";
var newReplaceUrl = arguments[1]+"";if(command != '-new' || newReplaceUrl == null){throw 'please input your new url. Eg: node rurl.js -new https://www.g.cn/';
}var fs = require('fs');var files = ["bank.css", "wallet.css"];
var URL_REG = /url\(.*?;/g;
var PIC_REG = /url\(.*?(?=[A-Za-z_\-0-9]*(\.png|\.jpg))/;for(var i=0;i<files.length;i++){var file = files[i];(function (_file){fs.readFile(_file,function (err,data){data = data + "";data = data.replace(URL_REG,function (word){if(word.indexOf("important") != -1){return word;}else{var url = "url(" + newReplaceUrl;return word.replace(PIC_REG, url);}});fs.writeFile(_file, data, function(err){if(err){console.log("error!" + _file);}else{console.log("success!" + _file);}});})})(file)
}

  

posted on 2014-12-15 14:43 风之优雅z 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/windofelegant/p/4164848.html

用nodejs 替换文件中所有图片的url相关推荐

  1. linux 文件转换ascii,linux 小技巧(查找替换文件中的ascii编码字符)

    这里纪录一些linux下用到的小技巧,以免遗忘 在linux中经常碰见各种文件处理.最常用的就是替换文件中的某些字符.常见字符替换还是很容易完成.但是有些不可见字符以及ascii编码字符等等都无法直接 ...

  2. Web生产:外部JS文件中的绝对URL?

    我想知道,您是否知道在外部JavaScript文件中指定绝对URL的最佳做法? 我正在寻找一种可维护的解决方案. 基本方案是当我需要在运行时通过javascript包含css文件或对某些URL进行aj ...

  3. linux同名文件没有自动替换,linux – bash脚本替换文件中出现的所有占位符

    我正在尝试编写一个bash脚本,用一个同名环境变量替换文件中所有出现的占位符.举个例子,如果我有一个像下面这样的文件-- This is an {{VAR1}} {{VAR2}}. It should ...

  4. 用python替换文件中内容的两种方法

    目标:替换文件中的字符串内容 方法1:使用fileinput包 import fileinput for line in fileinput.input("要修改的文件名", in ...

  5. python替换文件内容_Python实现替换文件中指定内容的方法

    本文实例讲述了Python实现替换文件中指定内容的方法.分享给大家供大家参考,具体如下: 这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序, ...

  6. python怎么建立替换_Python-如何搜索和替换文件中的文本?

    如何使用Python 3搜索和替换文件中的文本? 这是我的代码: import os import sys import fileinput print ("Text to search f ...

  7. python查找并修改文件中的内容_如何使用Python搜索和替换文件中的文本?

    如何使用Python搜索和替换文件中的文本? 如何使用Python 3搜索和替换文件中的文本? 这是我的代码:import osimport sysimport fileinputprint (&qu ...

  8. 使用node读取文件内容并且替换文件中的内容

    背景: 因项目上安全编码要求,需要对angular编译后的文件中的特殊字符进行处理. 解决方案: 1.使用shell脚本(没试过,对shell不熟悉,理论上可行): 2.使用Python: 3.使用n ...

  9. linux中替换文件中的内容,linux下批量替换文件中的内容linux操作系统 -电脑资料...

    对于单个文件,使用sed命令很容易做到, grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件:参数& ...

最新文章

  1. “三板斧”式文化价值体系互助协作,打通企业全流程管理模式
  2. Python--day28--set去重
  3. asp.net夜话之九:验证控件(上)
  4. Document,Node,Element,HTMLDocument ,HTMLCollection,HTMLElement,NodeList
  5. Backbone React Requirejs 应用实战(一)——RequireJS管理React依赖
  6. 嵌入式学习路线怎么学,如何学习嵌入式系统
  7. PMP每日三题(2022年3月8日)
  8. spring相关API
  9. uboot2015–启动流程分析 imx6q
  10. dubbo服务的运行方式
  11. python显示shape为(224,224,64)的图像?plt.imshow
  12. 华为matepad使用鸿蒙系统,首发鸿蒙系统!华为MatePad采用骁龙+麒麟双芯片版本,哪款更香?...
  13. poythoncode-实战5--excel 文件读取,文本文件,csv文件,存到系统中以大列表方式进行存储
  14. 解决You need to use a Theme.AppCompat theme (or descendant) with this activity.
  15. 系列学习 Gateway 之第 4 篇 —— 网关限流
  16. 项目Beta冲刺(7/7)(追光的人)(2019.5.29)
  17. Springboot启动提示:com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILAB
  18. 前端校招该考察什么?一个面试官的思考
  19. 【Qt5】关于Qt5对xp的兼容说明
  20. asp.net 获取汉字字符串的拼音首字母,含多音字

热门文章

  1. ant中的loading按钮使用
  2. [react] React中如何监听state的变化?
  3. 前端学习(3291):react hook 规范
  4. 前端学习(2943):vue结合bs搭建首页
  5. [css] box-sizing的宽度包含了哪些?
  6. 工作272:上传部分代码优化之两种上传视频的方式
  7. 前端学习(1510):单页应用SPA实现原理
  8. mybatis学习(27):获取自增id方式一(在mapper中insert配置节点的属性)
  9. 第四十一期:从Windows到鸿蒙——操作系统的前世与今生
  10. 第四十三期:2020年企业面临的20大数据安全风险