如何在NX Generator中删除文件?对应的API是什么?
NX Generator 删除文件的API用法
已知NX Generator提供了文件管理API,支持创建、更新、移动及删除文件操作。现在编写了生成Node应用的代码,希望删除生成后的指定文件,对应的API是Tree对象的delete方法。
修改后的代码示例
你可以通过tree.delete()方法删除指定文件,结合项目的sourceRoot拼接完整路径即可:
import { readProjectConfiguration, Tree } from '@nrwl/devkit'; import { applicationGenerator } from '@nrwl/node' export interface Schema { name: string } export default async function (tree: Tree, schema: Schema) { // 创建名称为`schema.name`的Node应用 await applicationGenerator(tree, { name: schema.name }) const projectRoot = readProjectConfiguration(tree, schema.name).sourceRoot if (!projectRoot) throw new Error(`${schema.name} is not a project found in project configuration`) // 定义需要删除的文件相对路径 const filesToDelete = [ 'app/.gitkeep', 'assets/.gitkeep', 'environments/environment.prod.ts', 'environments/environment.ts' ]; // 拼接完整路径并删除文件 filesToDelete.forEach(filePath => { const fullPath = `${projectRoot}/${filePath}`; if (tree.exists(fullPath)) { // 可选:先检查文件是否存在再删除,避免报错 tree.delete(fullPath); } }); }
补充说明
Tree是NX Devkit提供的文件系统抽象层,所有工作区文件操作都通过它完成delete方法接收文件的完整路径作为参数,执行后会从虚拟文件系统中移除目标文件
内容的提问来源于stack exchange,提问作者Andrew Allen
相关产品推荐
相关产品推荐

