使用

在 Web 应用、 Npm 模块和 Monorepo 项目中,我们提供了 new 命令用于创建项目元素、开启功能和创建子项目。

Web 应用

Web 应用项目通过 @modern-js/app-tools 提供 new 命令。

new 命令提供了三种操作类型:

  • 创建工程元素

  • 启用可选功能

  • 自动重构

每种操作类型都提供了对应支持的列表,可根据项目情况进行选择。

例如:

创建新的应用入口:

npm run new
? 请选择你想要的操作 创建工程元素
? 请选择创建元素类型 新建「应用入口」
? 请填写入口名称 entry

执行完成后将会在项目 src 目录创建新入口对应名称的文件夹及默认入口文件,并且自动帮忙整理之前 src 下入口文件到 package.jsonname 字段对应的文件夹中。

开启 BFF 功能:

npm run new
? 请选择你想要的操作 启用可选功能
? 请选择功能名称 启用「BFF」功能
? 请选择 BFF 类型 函数模式
? 请选择运行时框架 Express

执行完成后将会在项目安装 BFF 相关依赖,并创建 api 目录用于 BFF 模块的开发并提供提示信息用于注册 BFF 插件。

INFO

这里未帮助用户自动注册插件,原因是由于 modern.config.[tj]s 在项目生命周期中变化比较复杂,可能存在模块之间互相引用问题,让用户手动注册能保证修改配置的正确性。

在后续定制化的开发中,如果有类似的需求,也可以通过提示的方式给到使用方操作指南,让用户对文件进行手动操作。

WARNING

执行 new 命令时可能会出现需要开启的功能不在列表中,需要检查一下项目 package.json 中是否已经安装对应功能的插件,如果仍需使用 new 命令开启,需要先手动移除对应的插件依赖。

Npm 模块

Npm 模块项目通过 @modern-js/module-tools 提供 new 命令。

new 命令提供了启用可选功能的能力。

例如:

开启 Storybook 能力:

npm run new
? 请选择你想要的操作 启用可选功能
? 请选择功能名称 启用「Storybook」

执行完成后将会在项目安装 Storybook 插件相关依赖,增加 storybook 命令,创建 stories 目录用于 Storybook 模块的开发并提供提示信息用于注册 Storybook 插件。

Monorepo

Monorepo 项目通过 @modern-js/monorepo-tools 提供 new 命令。

new 命令提供了创建子项目的能力。

例如:

创建 Web 应用子项目:

? 请选择你想创建的工程类型 Web 应用
? 请填写子项目名称 web_app
? 请填写子项目目录名称 web_app
? 请选择开发语言 TS
? 请选择构建工具 webpack

执行完成后将会在项目 apps 目录创建 web_app 的子项目,在子项目目录中依然可以执行 new 命令创建项目元素和开启功能。