能否手动指定 tsconfig 路径
在 monorepo 项目中使用 import() 动态引入包时打包结果有误(将 ’@xxx/foo‘ 替换为了 'packages/foo/', foo 是包名),测试发现是读取了 tsconfig.json 中的 paths 导致的,去掉 paths 即可。
预期结果是在开发过程中仍然保留 tsconfig 的 paths,希望提供一个手动指定 tsconfig 的配置项。
是在 monorepo 根目录执行的 father?
是在 monorepo 根目录执行的 father?
根目录运行统一的构建命令,子目录执行 father build,感觉应该是动态导入的 bug,不过我感觉提供一个手动指定 tsconfig 的配置项其实相对合理一点,这样也不会和 vscode 这类编辑器的 tsconfig 读取路径冲突。
可以看下 father 是不是最新版,之前做过一个优化,超出 cwd 的 paths 不会做 replace,子包 A 肯定在子包 B 的 cwd 之外,ref: https://github.com/umijs/father/commit/18dacf17b1ab4c42cc64e1e30e62842baf0ed5f4
我感觉提供一个手动指定 tsconfig 的配置项其实相对合理一点
这个暂时不会考虑,尽量保持用法和框架实现的简单,除非未来有解不了的场景
解决了,核心问题就是在最外层的 tsconfig.json 内部写了 baseUrl,但是包内没写,extends 的时候使用了外部的 baseUrl,加上 baseUrl: '.'正常了,但是这样也导致开发模式下的 tsconfig.json paths 完全失效了。
复现仓库:https://github.com/Col0ring/father-tsconfig-example
mark
我也遇到这个问题了,请问有什么比较好的方案吗
解决了,核心问题就是在最外层的 tsconfig.json 内部写了 baseUrl,但是包内没写,extends 的时候使用了外部的 baseUrl,加上
baseUrl: '.'正常了,但是这样也导致开发模式下的 tsconfig.json paths 完全失效了。复现仓库:https://github.com/Col0ring/father-tsconfig-example
解决了,核心问题就是在最外层的 tsconfig.json 内部写了 baseUrl,但是包内没写,extends 的时候使用了外部的 baseUrl,加上
baseUrl: '.'正常了,但是这样也导致开发模式下的 tsconfig.json paths 完全失效了。复现仓库:https://github.com/Col0ring/father-tsconfig-example
一样的问题,我的诉求还是:能否手动指定 tsconfig 路径?
求支持手动指定
使用 preact/compat 的时候也是有这个问题,
import React from 'react'
变成了
import React from "../../packages/foo/node_modules/preact/compat/src/index.d.ts";
应该是:
import React from "../../../node_modules/preact/compat/src/index.d.ts"
看了下 tsconfig-paths, 可以使用TS_NODE_PROJECT设置tsconfig路径
例如TS_NODE_PROJECT=tsconfig.build.json father build
看了下 tsconfig-paths, 可以使用TS_NODE_PROJECT设置tsconfig路径 例如
TS_NODE_PROJECT=tsconfig.build.json father build
这样设置不行啊, 生成类型文件时又去调用ts.findConfigFile找配置文件
我有一个类似的需求, 需要构建不同tsconfig的生成的pkg, 所以如果能将这里的findConfigFile第三个参数configName暴露允许配置, 则可以完美解决我的问题 https://github.com/umijs/father/blob/0cdea25ba473c73e78f56eec264a747bb7c25c18/src/builder/bundless/dts/index.ts#L16