Node代码片段
# 0. 前言
# 1. 文件系统
# JSON
相关
读取
JSON
文件使用
readFileSync
+JSON.parse()
【推荐】- 可以设置多种读取格式
使用
require("./xxx.json")
【次推荐:有可能会存在结果缓存】- 缺点:只能按照
utf-8
格式读取,同步读取,当同一个文件被多次引用缓存结果。
- 缺点:只能按照
使用
fs.createReadStream
【读取非文本文件时,优势明显】
写
JSON
文件可以借助
JSON.stringify
的格式化操作:// 新增各环境下的空行 const os = require("os"); fs.writeFileSync( packagePath, /* 使用 stringify 去做格式化文本操作 */ JSON.stringify(packageJson,null,2) + os.EOL)
1
2
3
4
5
6综合案例:读取
JSON
文件,修改后,再覆盖。const fs = require("fs"); const os = require("os"); /* 获取路径地址 */ const packagePath = path.join(process.cwd(),'pacakge.json'); /* 获取文本内容(3种方案) */ const packageJson = require(packagePath); /* 修改 package.json 文本 */ packageJSON["version"] = "1.0.1"; /* 替换原先的 package.json 文件,其中 os.EOL 换行符 */ fs.writeFileSync( packagePath, /* 使用 stringify 去做格式化文本操作 */ JSON.stringify(packageJson,null,2) + os.EOL)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 2.Semver 库的使用
# 查看 npm 版本号
function checkNpmVersion(){
let hasMinNpm = false;
let npmVersion = null;
try {
npmVersion = execSync('npm --version').toString().trim();
hasMinNpm = semver.gte(npmVersion,'5.0.0');
}catch(err){
}
return {
hasMinNpm,
npmVersion
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使用 semver
判断 node
版本号是否符合要求
const unsupportedNodeVersion = !semver.satisfies(process.version, ">=8.10.0")
1
编辑 (opens new window)
上次更新: 2022/12/08, 14:12:00