Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

开发环境、代码编辑与项目生成命令 · 生成项目、服务接口与网站至迁移、转换与分析已有源码 ​

返回分篇目录

生成项目、服务接口与网站 ​

先看项目脚手架,再看接口代码生成;每种框架和协议保持自己的参数示例。

jhipster · 使用单体或微服务架构的 Web 应用程序生成器 ​

更多信息:https://www.jhipster.tech/creating-an-app/#command-line-options。

  • 生成一个简单的全栈项目(单体或微服务):
bash
jhipster
  • 生成一个简单的前端项目:
bash
jhipster --skip-server
  • 生成一个简单的后端项目:
bash
jhipster --skip-client
  • 将最新的 JHipster 更新应用到项目中:
bash
jhipster upgrade
  • 向已生成的项目添加一个新实体:
bash
jhipster entity {{实体名称}}
bash
jhipster import-jdl {{文件1.jh 文件2.jh ... n文件.jh}}
  • 为您的应用程序生成一个 CI/CD 管道:
bash
jhipster ci-cd
  • 为您的应用程序生成 Kubernetes 配置:
bash
jhipster kubernetes

quarkus · 创建 Quarkus 项目,管理扩展并执行基本的构建和开发任务 ​

更多信息:https://quarkus.io/guides/cli-tooling。

  • 在一个新目录中创建一个新的应用程序项目:
bash
quarkus create app {{项目名称}}
  • 在实时编码模式下运行当前项目:
bash
quarkus dev
  • 运行应用程序:
bash
quarkus run
  • 在连续测试模式下运行当前项目:
bash
quarkus test
  • 向当前项目添加一个或多个扩展:
bash
quarkus extension add {{扩展名1 扩展名2 ...}}
  • 使用 Docker 构建容器镜像:
bash
quarkus image build docker
  • 将应用程序部署到 Kubernetes:
bash
quarkus deploy kubernetes
  • 更新项目:
bash
quarkus update

vue · 适用于 Vue.js 项目的多用途命令行接口 ​

此命令也有关于其子命令的文件,例如:build。 更多信息:https://cli.vuejs.org/guide/。

  • 交互式地创建一个新的 Vue 项目:
bash
vue create {{项目名}}
  • 使用图形化界面创建一个新项目:
bash
vue ui

kitex · Kitex 是 Go RPC 框架 Kitex 框架提供的用于生成代码的一个命令行工具 ​

目前,kitex 支持 thrift 和 protobuf 的 IDL,并支持生成一个服务端项目的骨架。 更多信息:https://www.cloudwego.io/docs/kitex/tutorials/code-gen/code_generation/#generate-code。

  • 生成客户端代码,项目在 $GOPATH 目录下:
bash
kitex {{路径/到/IDL文件.thrift}}
  • 生成客户端代码,项目不在 $GOPATH 目录下:
bash
kitex -module {{github.com/xx-org/xx-name}} {{路径/到/IDL文件.thrift}}
  • 根据 protobuf IDL 文件生成客户端代码:
bash
kitex -type protobuf {{路径/到/IDL文件.proto}}
  • 生成服务端代码:
bash
kitex -service {{svc_name}} {{路径/到/IDL文件.thrift}}

protoc · 解析 Google Protobuf .proto 文件并生成指定语言的输出 ​

更多信息:https://manned.org/protoc。

  • 从 .proto 文件生成 Python 代码:
bash
protoc --python_out={{路径/到/输出目录}} {{输入文件.proto}}
  • 从一个导入其他 .proto 文件的 .proto 文件生成 Java 代码:
bash
protoc --java_out={{路径/到/输出目录}} --proto_path={{路径/到/导入搜索路径}} {{输入文件.proto}}
  • 生成多种语言的代码:
bash
protoc --csharp_out={{路径/到/c#_输出目录}} --js_out={{路径/到/js_输出目录}} {{输入文件.proto}}
  • 从 .proto 文件将文本格式消息编码为协议消息:
bash
protoc < {{消息.txt}} --encode={{类型名称}} {{输入文件.proto}}
  • 从 .proto 文件将协议消息解码为文本格式:
bash
protoc < {{消息.bin}} --decode={{类型名称}} {{输入文件.proto}}
  • 将协议消息解码为原始标签/值对:
bash
protoc < {{消息.bin}} --decode_raw

yacc · 使用形式语法规范文件生成一个 LALR 解析器(使用 C 语言) ​

另请参阅:bison。 更多信息:https://manned.org/yacc.1p。

  • 创建一个包含 C 语言解析器代码的文件 y.tab.c,并编译语法文件以及所有值所需的常量声明。(只有在使用 -d 选项时,才会创建常量声明文件 y.tab.h):
bash
yacc -d {{路径/到/grammar_file.y}}
  • 编译一个包含解析器描述的语法文件,以及报告由于语法中的歧义导致的冲突:
bash
yacc -d {{路径/到/grammar_file.y}} -v
  • 编译一个语法文件,并用 prefix 代替 y 作为输出文件名前缀:
bash
yacc -d {{路径/到/grammar_file.y}} -v -b {{前缀}}

zola · 一个静态站点生成器,一个二进制文件内包含所有功能 ​

更多信息:https://www.getzola.org/documentation/getting-started/cli-usage/。

  • 在指定目录下创建 Zola 使用的目录结构:
bash
zola init {{我的站点}}
  • 在删除 public 目录后构建整个站点:
bash
zola build
  • 将整个站点构建到另一个目录中:
bash
zola build --output-dir {{路径/到/输出_目录}}/
  • 使用本地服务器构建并服务站点(默认是 127.0.0.1:1111):
bash
zola serve
  • 构建所有页面,就像构建命令一样,但不将结果写入磁盘:
bash
zola check

迁移、转换与分析已有源码 ​

2to3 和 Babel 转换语言源码;jadx 从 Android 程序反编译,各自输入格式不同。

2to3 · 自动将 Python 2 代码转换成 Python 3 ​

自 3.11 起,该模块已被弃用,并自 3.13 起被移除。 参考请见:https://github.com/python/cpython/blob/8d42e2d915c3096e7eac1c649751d1da567bb7c3/Doc/whatsnew/3.13.rst?plain=1#L188。 更多信息:https://manned.org/2to3。

  • 显示将执行的变动但不执行(dry-run):
bash
2to3 {{路径/到/文件.py}}
  • 将 Python 2 文件转化为 Python 3:
bash
2to3 {{[-w|--write]}} {{路径/到/文件.py}}
  • 将 Python 2 语言特性转化为 Python 3:
bash
2to3 {{[-w|--write]}} {{路径/到/文件.py}} {{[-f|--fix]}} {{raw_input}} {{[-f|--fix]}} {{print}}
  • 除了某个语言特性外将所有其他的 Python 2 语言特性转化为 Python 3:
bash
2to3 {{[-w|--write]}} {{路径/到/文件.py}} {{[-x|--nofix]}} {{has_key}} {{[-x|--nofix]}} {{isinstance}}
  • 列出 Python 2 所有可转化为 Python 3 的语言特性:
bash
2to3 {{[-l|--list-fixes]}}
  • 将某一文件夹的所有 Python 2 文件转化为 Python 3:
bash
2to3 {{[-o|--output-dir]}} {{路径/到/Python 3 目录}} {{[-W|--write-unchanged-files]}} {{[-n|--nobackups]}} {{路径/到/Python 2 目录}}
  • 使用多线程运行 2to3:
bash
2to3 {{[-j|--processes]}} {{4}} {{[-o|--output-dir]}} {{路径/到/Python 3 目录}} {{[-w|--write]}} {{[-n|--nobackups]}} --no-diffs {{路径/到/Python 2 目录}}

babel · 一款 JavaScript 的编译器,将下一代 ES 语法转换为兼容语法 ​

更多信息:https://babeljs.io/docs/babel-cli。

  • 转编译指定文件到标准输出:
bash
babel {{路径/到/文件}}
  • 转编译指定文件,输入为特定文件:
bash
babel {{路径/到/输入文件}} --out-file {{路径/到/输出文件}}
  • 监听文件变动触发转编译:
bash
babel {{路径/到/输入文件}} --watch
  • 转编译整个目录下的 js 文件:
bash
babel {{路径/到/输入文件目录}}
  • 跳过指定目录下指定文件的编译(多文件使用英文逗号“,”分隔):
bash
babel {{路径/到/输入文件目录}} --ignore {{被忽略文件}}
  • 转编译后,执行压缩:
bash
babel {{路径/到/输入文件}} --minified
  • 使用预设值:
bash
babel {{路径/到/输入文件}} --presets {{预设项}}
  • 输出所有可用的选项:
bash
babel --help

jadx · Dex 到 Java 的反编译器 ​

将 Android Dex 和 APK 文件生成 Java 源代码。 更多信息:https://github.com/skylot/jadx#usage。

  • 将一个 Dex 文件反编译到一个目录中:
bash
jadx {{路径/到/文件}}
  • 将一个 Dex 文件反编译到一个特定目录中:
bash
jadx {{[-d|--output-dir]}} {{路径/到/目录}} {{路径/到/文件}}

继续阅读