Nrwl Nx 构建节点项目仅转译 main.ts
Posted
技术标签:
【中文标题】Nrwl Nx 构建节点项目仅转译 main.ts【英文标题】:Nrwl Nx build node project only transpiles main.ts 【发布时间】:2021-01-24 01:14:23 【问题描述】:我是 Nrwl 和 monorepos 的新手。我有一个节点应用程序,我正在尝试使用nx build [project-name]
构建它。我的节点应用程序在 main.ts 所在的 src 文件夹下的文件夹结构中有一些打字稿文件。当我运行nx build [project-name]
时,只有 main.ts 文件被转译为 out 目录中的 .js 文件。我今天一直在努力尝试不同的 tsconfig 变体,以使整个应用程序转译到 out 目录中,但无济于事。我不得不求助于使用tsc --project ./apps/[project-name]/tsconfig.app.json
来转译整个应用程序。是否有可能让 NX 转译整个节点项目?
这是我的项目 tsconfig:
//tsconfig.app.json
"extends": "./tsconfig.json",
"compilerOptions":
"outDir": "../../dist",
"types": [
"node"
]
,
"exclude": [
"**/*.spec.ts"
],
"include": [
"**/*.ts"
]
//tsconfig.base.json
"compileOnSave": false,
"compilerOptions":
"allowSyntheticDefaultImports": true,
"rootDir": ".",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2017",
"module": "commonjs",
"esModuleInterop": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
],
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"baseUrl": ".",
"paths":
"@work-orders/interfaces": [
"libs/interfaces/src/index.ts"
],
"@work-orders/domain": [
"libs/work-orders-domain/src/index.ts"
]
,
"exclude": [
"node_modules",
"tmp"
]
【问题讨论】:
【参考方案1】:我刚刚遇到了同样的问题。看来您必须使用 @nrwl/workspace:run-commands 功能来调用 tsc --project ./apps/[project-name]/tsconfig.app.json
【讨论】:
以上是关于Nrwl Nx 构建节点项目仅转译 main.ts的主要内容,如果未能解决你的问题,请参考以下文章
Nrwl Nx build for production 缺少节点模块包
对象对象不是 PostCSS 插件 - 构建 nrwl 库项目时出错