Baya 一个基于Nodejs生成项目目录结构的程序

Baya 一个基于Nodejs生成项目目录结构的程序

前阵子写一些项目生成的脚本,感觉很不直观,shell 里面各种 mkdir xxx cp xxx,索性写一个基于很直观的配置文件生成项目结构的程序。

####配置文件:

+ test
  + app
    + module
      - media.html
      - a.html
    + html
      - index.html < ../History.md
      - a.js 
      - bigscreen.js <
    + styl
    + conf
- conf

####会生成的目录结构:

项目地址:

https://github.com/ianva/baya

安装:

npm install -g baya


2 回复

Baya: 一个基于Node.js生成项目目录结构的程序

前阵子写一些项目生成的脚本时,我发现使用Shell命令(如 mkdircp)来管理项目结构非常不直观。因此,我决定开发一个基于配置文件生成项目结构的程序,这样可以更清晰地定义项目结构。

配置文件:

配置文件采用一种直观的方式来描述所需的目录和文件结构。以下是一个示例配置文件:

+ test
  + app
    + module
      - media.html
      - a.html
    + html
      - index.html < ../History.md
      - a.js 
      - bigscreen.js <
    + styl
    + conf
- conf

在这个配置文件中:

  • + 表示创建一个目录。
  • - 表示创建一个文件。
  • < 表示将一个文件的内容复制到另一个文件中。

示例代码解析:

假设我们有一个名为 projectConfig.txt 的配置文件,其内容如下:

+ project-root
  + src
    + components
      - component1.js
      - component2.js
    + styles
      - main.css
  - README.md
  - package.json

我们可以编写一个简单的Node.js脚本来读取这个配置文件并根据配置创建相应的目录和文件结构。

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

function createDirectoryStructure(config, rootPath) {
  const lines = config.split('\n');
  
  lines.forEach(line => {
    line = line.trim();
    
    if (line.startsWith('+')) {
      // 创建目录
      const dirPath = path.join(rootPath, line.substring(1).trim());
      fs.mkdirSync(dirPath);
    } else if (line.startsWith('-')) {
      // 创建文件
      const filePath = path.join(rootPath, line.substring(1).trim());
      fs.writeFileSync(filePath, '');
    }
  });
}

// 读取配置文件
const config = fs.readFileSync('projectConfig.txt', 'utf8');

// 创建目录结构
createDirectoryStructure(config, './');

上述代码会根据 projectConfig.txt 文件中的配置,在当前目录下创建相应的目录和文件。

项目地址:

你可以从以下GitHub仓库获取源码和更多文档:

安装:

要全局安装Baya,只需运行以下命令:

npm install -g baya

安装完成后,你就可以使用 baya 命令来生成项目结构了。

希望这个工具能帮助你更高效地管理和生成项目结构!


根据你的描述,Baya 是一个用于基于配置文件生成项目目录结构的 Node.js 程序。这种工具可以极大地简化项目初始化的过程,并提供一个清晰的目录结构。

示例配置文件

配置文件使用了递归定义的方式,例如:

+ test
  + app
    + module
      - media.html
      - a.html
    + html
      - index.html < ../History.md
      - a.js 
      - bigscreen.js <
    + styl
    + conf
- conf

这段配置文件的含义是:

  • test 文件夹下包含 app 文件夹;
  • app 文件夹中包含 module 文件夹;
  • module 文件夹中包含 media.htmla.html 两个文件;
  • app 文件夹中还包含 html 文件夹;
  • html 文件夹中包含 index.html 文件,该文件将链接到上级目录中的 History.md 文件;
  • html 文件夹中还包含 a.jsbigscreen.js 文件;
  • app 文件夹中还包括 stylconf 文件夹;
  • 最后,配置文件末尾有一个 - conf 文件,表示在根目录生成一个 conf 文件。

安装和使用

  1. 安装: 通过 npm 全局安装 baya:

    npm install -g baya
    
  2. 使用: 在项目的根目录创建一个配置文件(如 baya.jsonbaya.js),然后运行:

    baya
    

    如果需要指定配置文件路径,可以用:

    baya path/to/configfile
    

实际应用

以下是一个简单的示例来展示如何创建一个基本的项目结构。首先,创建一个名为 structure.json 的配置文件,内容如下:

{
  "project": {
    "+src": {
      "+components": {
        "-componentA.js": "",
        "-componentB.js": ""
      },
      "+assets": {
        "+images": {
          "-logo.png": ""
        }
      },
      "-main.js": ""
    },
    "-package.json": "",
    "-README.md": ""
  }
}

然后使用 baya 命令行工具生成结构:

baya structure.json

这样,将会生成如下的目录结构:

/project
  /src
    /components
      componentA.js
      componentB.js
    /assets
      /images
        logo.png
    main.js
  package.json
  README.md

通过这种方式,可以轻松地为新项目设置一个标准化的目录结构,节省时间和精力。

回到顶部