Javascript 正则表达式以匹配package.json内容中的模块
我试图以编程方式动态地从package.json文件中添加和删除模块Javascript 正则表达式以匹配package.json内容中的模块,javascript,regex,Javascript,Regex,我试图以编程方式动态地从package.json文件中添加和删除模块为了实现这一点,我需要一个正则表达式,它可以匹配devDependencies或dependencies中的特定模块 以下是我尝试过的 const packageJsonContent = "my package.json content read from a file"; const moduleName = "babel"; //an example module to be removed from `packageJ
为了实现这一点,我需要一个正则表达式,它可以匹配
devDependencies
或dependencies
中的特定模块
以下是我尝试过的
const packageJsonContent = "my package.json content read from a file";
const moduleName = "babel"; //an example module to be removed from `packageJsonContent`
let moduleRegex = new RegExp('"\\s*'+moduleName+'\\s*"\\s*:\\s*".*"(\s*,)?'); //<-- I need help here
//remove module
packageJsonContent.replace(moduleRegex, "");
const packageJsonContent=“从文件读取的my package.json内容”;
常量moduleName=“巴别塔”//要从“packageJsonContent”中删除的模块示例`
设moduleRegex=new RegExp(“\\s*”+moduleName+“\\s*”\\s*:\\s*”(\s*,)?)// 您可以先找到您的依赖项
和devdependency
部分,然后从中删除所需的模块,然后在package.json
文件中替换新的依赖项
或devdependency
。考虑改为解析json,并删除[moduleName]依赖项
和依赖项
对象中的
属性,而不是使用卷积正则表达式:
const moduleName=“babel”;
const packageJSONStr=`{
“name”:“somename”,
“脚本”:{
“构建”:“tslint src/***.ts&&webpack”
},
“作者”:“鲍勃”,
“依赖项”:{
“foo”:“^1.2.3”
},
“依赖性”:{
“巴别塔”:“^1.2.3”,
“ts加载器”:“^6.2.1”,
“类型脚本”:“^3.6.3”,
“网页包”:“^4.41.0”,
“网页包cli”:“^3.3.9”
}
}`;
const packageJSON=JSON.parse(packageJSONStr);
删除packageJSON.dependencies[moduleName];
删除packageJSON.devdependences[moduleName];
log(packageJSON)代码>为什么要为此使用正则表达式?解析JSON不是更好吗?