如何让Nx生成Angular库时自动配置完整路径别名至tsconfig.base.json?
解决Nx Angular库路径别名不符合预期的问题
执行nx generate @nx/angular:library libs/navigation/feature/tabs后,tsconfig.base.json里生成的路径别名是"@app/tabs": ["libs/navigation/feature/tabs/src/index.ts"],但我们想要的是完整路径格式的"@app/navigation/feature/tabs": ["libs/navigation/feature/tabs/src/index.ts"],不用手动修改的话可以通过以下两种方式实现:
方法一:生成时指定导入路径参数
直接在生成命令里添加--importPath参数,明确指定别名的完整路径:
nx generate @nx/angular:library libs/navigation/feature/tabs --importPath @app/navigation/feature/tabs
执行这个命令后,Nx会自动在tsconfig.base.json中生成你预期的完整路径别名。
方法二:全局配置默认规则
如果希望所有新生成的库都自动使用完整路径作为别名,可以修改项目根目录的nx.json文件,配置@nx/angular:library生成器的默认参数:
打开nx.json,找到或新增generators节点,添加以下配置:
{ "generators": { "@nx/angular:library": { "importPath": "@app/{projectRoot}" } } }
这里的{projectRoot}会自动替换为库的相对路径(比如navigation/feature/tabs),之后再生成任何库时,都会自动生成@app/xxx/xxx格式的完整路径别名。
注意:如果你的Nx版本偏旧,配置位置可能略有不同,但上述两种方式在最新稳定版Nx中都能正常生效。
内容的提问来源于stack exchange,提问作者omikron
相关产品推荐
相关产品推荐

