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