Skip to main content

js-ts-node-system-traps

· 2 min read
Spark light
import * as allsupertest from 'supertest'; //import all as new js collection obj
import request from 'supertest'; //import the default
import { Test, Agent } from 'supertest'

tsconfig("esModuleInterop": true) , will let allsupertest() function call build error, it should avoid use still style call

tsc: package.main="dist/index.js" tsocnfig.compilerOptions.outDir="./dist/" 时tsc默认人文dist也是源码目录 dist=>dist build会报错 tsc目标文件覆盖源文件错误. 额外加上package.types=""dist/indx.d.ts", 就可以避免tsc吧 dist目录当作源码, 通过tsocnfig.exclude无法排除掉这个场景下的dist/目录,exlude只排除include匹配到的项目,这个官方文档描述清楚了

vscode识别tsconfig文件名模式:tsconfig.*.json 其他tsconfig-xxx.json匹配解析

yarn plugin import typescript 会在.yarnrc.yml中记录plugin并下载plugin到 .yarn/plugins/到. 如果后续删除.yarn目录但是不清理.yarnrc.yml中的plugin条目。后续任何yarn命令将报plugin加载错误。策略:不删除.yarn目录 只删除.yarn/cache目录. 或 yarn cache clean

typescript build

tsc -p tsconfig.json #build single tsconfig.json (not use reference define in tsconfig.json) tsc -b tsconfig.json "declarationMap": true, 当ts源码 的mod1 import mod2时。如果mod2的ts的rootDir不和package.json在同一级目录。而在./src等子目录下时候 vscode不code intelli 不work。需要declarationMap:true 通过编译输出的map文件来辅助code intellli