【nodejs】nodejs如何读取并修改文件内容?

之前用JQuery写了一个简单的门户网站,没有使用webpack之类的打包工具,但是有开发环境、测试环境和正式环境的api地址切换,为了不用每次都手动修改,我用nodejs写了一个小脚本用来修改文件内容。

文件列表:

dev.js //开发环境
test.js //测试环境
production.js //线上环境
package.json //npm init初始化或者手动创建 用来执行js
api.js //接口api地址,用来写入并全局使用的api.js
config.js //用来读取并修改的api.js

先看package.json内容,用来执行三个环境的配置文件。

{
    "name": "test",
    "version": "1.0.0",
    "description": "",
    "scripts": {
        "dev": "node dev",
        "test": "node test",
        "production": "node production"
    },
    "author": "",
    "license": "ISC"
}

api.jsconfig.js文件内容相同:

var devApi = "http://192.168.0.197:9091";
var testApi = "http://192.168.0.197:9091";
var productionApi = "http://192.168.0.40/yueyawang-portal";
var api = productionApi

dev.js文件内容:

//引入路径模块
const path = require("path");
//引入文件模块
const fs = require("fs");
//拼接用来读取的文件路径,当前路径加上config.js
let pathName = path.join(__dirname, "config.js")
//创建可读流
let rs = fs.createReadStream(pathName)
//创建可写流
let ws1 = fs.createWriteStream("api.js")
//设置文件编码
rs.setEncoding("utf8")
rs.on("data", function(chunk) {
    let list = chunk.split(";") //这里为了简单,我用了分号来切割内容,正确的做法是用正则表达式来替换
    list[list.length - 1] = "var api = devApi" //将内容修改为命令对应的配置
    ws1.write(list.join(";")) //将数组转换为字符串,并写入可写流
})
rs.on("end", function() {
    ws1.end() //文件读取完毕,结束写入。
})

test.jsproduction.js除了"var api = testApi""var api = productionApi"之外,与dev.js内容相同。从这里可以看出,我是通过修改api全局变量的赋值,来修改不同的环境所需要的api的,把执行命令配置到Jenkins,就可以了,不用每次部署都要手动修改api了。

配置命令:

npm run dev  //开发环境
npm run test //测试环境
npm run production  //线上环境

有帮助的话,点个赞呗!

上一篇:vue3新增内置组件teleport用法
下一篇:element-ui的form数组表单验证(循环表单验证)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值