我正在学习打字稿,我很乐意开始尝试创建包。
这是我目前的文件夹结构:
myProject/
├── node_modules/
├── src/
│ ├── app
│ ├── index.ts
│ ├── packages
│ ├── database
│ ├── index.ts
├── package.json
├── tsconfig.json
正如您所看到的,我的src
文件夹分为app
,其中包含我的应用程序实现,以及package
文件夹,应该更加“抽象”,以便最终有一天成为一个包裹。
我想要的是访问我的包模块,在我的app文件夹中写下以下内容:
import Database from 'packages/database';
而不是
import Database from '../packages/database/index';
我将paths
配置环绕到tsconfig.json
文件中,但我无法让它工作:
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"packages": ["src/packages"]
}
}
}
我还希望继续访问node_modules
文件夹...
我怎么能实现这一目标?
感谢您的回复
答案 0 :(得分:1)
我认为最适合您的解决方案是将您的工作分成几个包:
例如,您将拥有一个包数据库包,它将使您的所有数据库相关工作。
为此,您需要稍微修改一下结构:
myProject/
├── node_modules/
├── src/
│ ├── app
│ ├── index.ts
│ ├── packages
│ ├── database
│ ├── SomeClass.ts
│ ├── index.ts
├── package.json
├── tsconfig.json
然后在database/index.ts
文件中进行所有导出:
import SomeClass from './SomeClass'
import SomeOtherClass from './SomeOtherClass'
export {SomeClass, SomeOtherClass}
您可以从您的app文件夹中输入:
import {SomeClass} from 'package-database';
当然,您还需要修改tsconfig.json
,您已接近它了:
{
"compilerOptions": {
...
"baseUrl": ".",
"paths": {
"package-database": ["src/packages/database"]
}
}
}