Ale*_*lex 6 typescript tsc tsx monorepo
假设我有这个 monorepo:
/apps
/apps/app1
/apps/app1/src (contains index.ts and many other files and subfolders here)
/apps/app1/tsconfig.json
/apps/app1/package.json
/apps/app2
/apps/app2/src (contains index.ts and many other files and subfolders here)
/apps/app2/tsconfig.json
/apps/app2/package.json
/common
/common/package1
/common/package1/src
/common/package1/src/utility1.ts
/common/package1/src/utility2.ts
/common/package1/tsconfig.json
/common/package1/package.json
/tsconfig.json
/package.json
Run Code Online (Sandbox Code Playgroud)
我只需要 esm 就可以在其中工作。
我怎样才能让 tsx、tsc 或任何其他 ts 工具运行一个或多个使用“common/*/src”中内容的应用程序?基本上不需要将“common”中的内容构建到 dist 文件夹中。
因此,每次我对其中的文件进行更改时,/common当我在监视模式下运行应用程序时,它们都会立即生效。
首先,在您的根文件夹中monorepo,尝试运行npm init -y以创建一个文件并通过运行将package.json其安装TypeScript为依赖项,然后再次在根文件夹中创建一个包含以下内容的文件:ts-nodedevnpm install --save-dev typescript ts-nodetsconfig.json
{
"compilerOptions": {
"module": "es2020",
"resolveJsonModule": true,
"esModuleInterop": true,
"rootDir": ".",
"outDir": "./dist"
},
"include": [
"apps/*/src",
"common/*/src"
]
}
Run Code Online (Sandbox Code Playgroud)
现在在每个应用程序的文件夹(/apps/app1和/apps/app2)中,更新tsconfig.json如下:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src",
"jsx": "react-jsx"
},
"include": [
"src"
]
}
Run Code Online (Sandbox Code Playgroud)
在每个应用程序的文件夹(/apps/app1和/apps/app2)中,更新package.json然后尝试运行npm start以在每个应用程序的文件夹的监视模式下启动应用程序:
{
"scripts": {
"start": "ts-node src/index.ts"
}
}
Run Code Online (Sandbox Code Playgroud)
最后,对其中文件所做的任何更改/common将在运行应用程序时立即生效!
| 归档时间: |
|
| 查看次数: |
546 次 |
| 最近记录: |