使用node开发命令行小工具

1、使用node自动创建模版文件

可以使用Node.js中的文件系统模块(fs)和字符串模块(string)来实现自动创建模板文件并替换指定内容的功能。

以下是一个简单的示例代码:

const fs = require('fs');
const { StringDecoder } = require('string_decoder');

// 读取模板文件内容
const templateContent = fs.readFileSync('template.txt', 'utf8');

// 替换模板文件中的占位符
const replacedContent = templateContent.replace(/{{name}}/g, 'John Doe');

// 创建新文件并写入替换后的内容
fs.writeFileSync('newFile.txt', replacedContent, 'utf8');

在上面的代码中,我们首先使用fs.readFileSync方法读取模板文件的内容,然后使用字符串的replace方法替换模板文件中的占位符。最后,我们使用fs.writeFileSync方法创建新文件并写入替换后的内容。

需要注意的是,上面的代码中使用了正则表达式来全局匹配占位符。如果你的占位符不是固定的,可以根据实际情况修改正则表达式。

另外,如果你需要替换多个占位符,可以使用一个对象来存储占位符和对应的替换值,然后使用循环遍历对象来替换模板文件中的内容。

2、遍历并输出文件夹中的所有文件和子文件夹

当您需要遍历并输出文件夹中的所有文件和子文件夹时,可以使用Node.js自带的fs模块递归遍历目标文件夹。以下是一个简单的示例代码:

const fs = require('fs');
const path = require('path');

function traverseFolder(folderPath) {
  console.log(`正在遍历: ${folderPath}`);
  const files = fs.readdirSync(folderPath); // 同步读取当前文件夹下的文件和子文件夹
  files.forEach((file) => {
    const filePath = path.join(folderPath, file); // 获取当前文件或子文件夹的完整路径
    const stat = fs.statSync(filePath); // 获取当前文件或子文件夹的文件信息对象
    if (stat.isFile()) { // 如果是文件则输出文件名
      console.log(`文件: ${file}`);
    } else if (stat.isDirectory()) { // 如果是子文件夹则递归遍历
      traverseFolder(filePath);
    }
  });
}

traverseFolder('/your/folder/path');

这段代码会输出目标文件夹及其所有子文件夹下的所有文件名,以及每个子文件夹下的文件列表。

3、使用node写命令行工具

是的,使用Node.js可以很方便地创建命令行工具。以下是一个简单的例子,演示如何使用Node.js创建一个命令行工具来创建目录和文件:

  1. 首先,创建一个新的文件夹,并在其中创建一个名为index.js的文件。

  2. index.js文件中,添加以下代码:

#!/usr/bin/env node

const fs = require('fs');
const path = require('path');

const args = process.argv.slice(2);

if (args.length === 0) {
  console.log('Usage: create  [file1] [file2] ...');
  process.exit(1);
}

const dir = args[0];
const files = args.slice(1);

fs.mkdirSync(dir);

files.forEach(file => {
  const filePath = path.join(dir, file);
  fs.writeFileSync(filePath, '');
});

console.log(`Created ${dir} with ${files.length} files.`);
  1. 保存文件并在终端中进入该文件夹,运行以下命令:
npm init -y
npm link

这将创建一个新的npm包,并将其链接到全局npm包中,以便您可以在任何地方使用它。

  1. 现在,您可以在终端中运行以下命令:
create mydir myfile1.txt myfile2.txt

这将创建一个名为mydir的目录,并在其中创建两个空文件myfile1.txtmyfile2.txt

这只是一个简单的例子,您可以根据需要扩展它,以执行其他操作,如复制、删除文件等。

你可能感兴趣的:(我的node.js,node.js)