ben*_*d-g 5 typescript package.json yarn-workspaces
我正在yarn-workspace和typescript.
考虑以下项目结构:
project/
|- package.json
|- packages/
| |- common/
| | |- build/
| | | `- src/
| | | |- myFile.d.ts
| | | `- myFile.js
| | |- package.json
| | `- src/
| | | `- myFile.ts
| | `- tsconfig.json
| `- app/
| |- package.json
| |- src/
| | `- index.ts
| `- tsconfig.json
`- yarn.lock
Run Code Online (Sandbox Code Playgroud)
project/
|- package.json
|- packages/
| |- common/
| | |- build/
| | | `- src/
| | | |- myFile.d.ts
| | | `- myFile.js
| | |- package.json
| | `- src/
| | | `- myFile.ts
| | `- tsconfig.json
| `- app/
| |- package.json
| |- src/
| | `- index.ts
| `- tsconfig.json
`- yarn.lock
Run Code Online (Sandbox Code Playgroud)
我的问题是,当尝试functionFromCommon从“app”文件夹引用时,我必须编写以下内容:
// packages/common/src/myFile.ts
export function functionFromCommon(): void {
console.log("Greetings from common");
}
Run Code Online (Sandbox Code Playgroud)
我想要的是找到一种方法,只import {} from "common/myFile"在从其他包中引用它时才写入。
我知道我可以将所有常用包捆绑在一个入口点中,index.js但我想保留文件夹结构,以便编写:
// packages/app/src/index
import { functionFromCommon } from 'common/build/src/myFile';
functionFromCommon();
Run Code Online (Sandbox Code Playgroud)
我试图查看可以在package.json(某种“mainFolder”字段)中指定的内容,但找不到任何内容。
供您参考,这些package.json文件如下所示:
import { f1 } from "common/moduleA";
import { f2 } from "common/moduleB";
Run Code Online (Sandbox Code Playgroud)
// root package.json
{
"name": "project",
"license": "MIT",
"workspaces": [
"packages/*"
]
}
Run Code Online (Sandbox Code Playgroud)
// packages/common/package.json
{
"name": "common",
"version": "1.0.0",
"license": "MIT",
"dependencies": {},
"devDependencies": {
"@types/node": "^14.0.4",
"typescript": "^3.9.3"
}
}
Run Code Online (Sandbox Code Playgroud)
而且tsconfig.json都是这样的:
// packages/app/package.json
{
"name": "app",
"version": "1.0.0",
"license": "MIT",
"dependencies": {
"common": "1.0.0"
},
"devDependencies": {
"@types/node": "^14.0.4",
"typescript": "^3.9.3"
}
}
Run Code Online (Sandbox Code Playgroud)
一个所谓的新领域"exports"已经被添加到package.json刚刚定义。在此处查看更多信息:https : //nodejs.org/docs/latest-v12.x/api/esm.html#esm_exports_sugar。
但它目前不受 Typescript 支持...
通过遵循以下解决方法,我能够获得一个工作版本:https : //github.com/microsoft/TypeScript/issues/33079#issuecomment-702617758。
| 归档时间: |
|
| 查看次数: |
929 次 |
| 最近记录: |