使用 ramda 解析 .yarnrc/.npmrc 配置文件的例子
使用 纯函数工具(ramda.js) 解析 .yarnrc/.npmrc 配置文件的例子
源代码,依赖 ramda.js
./utils/parseConfig
((root, factory) => {if (typeof define === 'function' && define.amd) {define(['ramda'], factory);} else if (typeof exports === 'object') {var R = require('ramda');module.exports = factory(R);} else {root.parseConfig = factory(root.R);}
})(this, (R) => {let regs = {trimzy:R.replace(/\\\\/g,"\\"), // 去除多余的转义符trims:R.replace(/^(\s|\"|\'|\ )+|(\s|\"|\'|\ )+$/g,'')// 去除端引号和空格}return function creteConverter(annotator,spliter){return R.compose(R.fromPairs,//转成二维数组转为对象R.filter(arr=>arr[0] !=""),//过滤掉key为空的R.map(R.compose(R.map(regs.trims), // 去除两端多余的 双引号/单引号/空白R.split(spliter), // 使用 key value 分隔符regs.trimzy // 去除路径中转义符)), // 转为二维数组,并去key为空的数据R.filter(s=>R.both(str=>str[0]!=annotator, //去除 # 注释行str=>R.trim(str)!="" //去除空行)(s)),R.map(R.trim),//去除两段空白R.split(/\r\n|\r|\n/) // 分行)}
});
node 使用示例
const parseConfig = require("./utils/parseConfig");
const os = require("os");
const path = require("path");
const fs = require("fs");
const homedir = os.homedir();let parseYarnConfig = parseConfig("#"," ")
let parseNpmConfig = parseConfig(";","=")var str = fs.readFileSync(path.join(homedir,".yarnrc")).toString();
var str2 = fs.readFileSync(path.join(homedir,".npmrc")).toString();var config = parseYarnConfig(str);
var config2 = parseNpmConfig(str2);console.log(config);
console.log(config2);
浏览器端使用示例
require([”./utils/parseConfig“],function(parseConfig){var parser = parseConfig("#"," ")var teststr=`
# 配置文件示例
# 这是一段注释
cache "D:\\yarn\\cache"
global "D:\\yarn\\global"
`console.log(parser(teststr))
})
使用 ramda 解析 .yarnrc/.npmrc 配置文件的例子相关推荐
- python配置文件解析_Python中配置文件解析模块-ConfigParser
Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置). 配置文件的格式是: []包含的叫section, section 下有option=valu ...
- nginx解析php文件设置_nginx 解析php conf配置文件
本博客的nginx 配置文件 server { listen 80;#80和443端口同时监听 listen 443 ssl; server_name www.koukousky.com koukou ...
- 解析游戏关卡配置文件及游戏角色配置文件
角色出生点配置文件 <?xml version="1.0" encoding="utf-8" ?> <Nodes><Node ID ...
- java dom 解析xml 例子,Java DOM解析XML的幾個例子
Sample1: 1:新建XML文檔 books.xml,放到項目的根目錄下. xmlns="http://test.org/books"> Thinking in JAVA ...
- Pull和SAX解析XML,以解析中国省市列表为例子
废话不说直接上代码 //地区对象 public class Area { private String aName ; //地区名 private String aCode ; //地区号 publi ...
- sed mysql配置文件_shell解析my.cnf配置文件
my.cnf配置格式如下 vi my.cnf [client] port=3306 socket=/tmp/mysql.socket [mysqld] port=3306 server-id=1 da ...
- 解析davinci快捷键配置文件
davinci resolve 是一款非线性影片剪辑软件,mac 下快捷键配置文件位于: lucas@lucasdeMacBook-Pro DaVinci Resolve % pwd /Users/l ...
- spring是如何解析自己的配置文件的
http://kb.cnblogs.com/a/1729330/ 转载于:https://blog.51cto.com/2820354/823101
- 解析darknet网络配置文件用了哪些层
参考ultralytics/yolov3 def parse_model_config(path):"""Parses the yolo-v3 layer configu ...
最新文章
- mysql多表查询书籍_MySQL多表查询及子查询
- [Z]如何使用OpenGL扩展
- MySQL索引和SQL调优手册
- 《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...
- Jmeter(二)关联
- mysql 大数据量插入遇到瓶颈 可行性方案探究
- win32开发(调试)
- Http Body 的四种格式
- java session超时判断_详解SpringBoot中Session超时原理说明
- 6个usb口服务器无响应,USB接口不能用(没反应)修复方法
- VScode使用element-ui插件准备
- 他是程序员出身,如今身价上亿!一人干出了美国版的:携程、安居客、看准网!...
- 企业内部信息安全管理——(一)风险识别和管控
- 导致Android手机崩溃的壁纸,一张壁纸导致安卓手机崩溃作者首发声:绝非故意...
- 万物皆可傅里叶|傅里叶分析之掐死教程(完整版)
- PostgreSQL AUTO INCREMENT
- 20.EC实战 笔记本电脑的休眠唤醒是如何实现的
- matlab绘制二维曲线图
- 221. k8s_v1.15addons插件部署
- DNA存储:这些公司正在开启数据存储的未来