Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript:从不同于节点_模块的位置解析包_Typescript - Fatal编程技术网

Typescript:从不同于节点_模块的位置解析包

Typescript:从不同于节点_模块的位置解析包,typescript,Typescript,我正在学习typescript,我想开始尝试创建软件包 以下是我目前的文件夹结构: myProject/ ├── node_modules/ ├── src/ │ ├── app │ ├── index.ts │ ├── packages │ ├── database │ ├── index.ts ├── package.json ├── tsconfig.json 正如您所看到的,我的src文件夹分为app,其中包含我的应用程序实现和一个p

我正在学习typescript,我想开始尝试创建软件包

以下是我目前的文件夹结构:

myProject/
├── node_modules/
├── src/
│   ├── app
│       ├── index.ts
│   ├── packages
│       ├── database
│           ├── index.ts
├── package.json
├── tsconfig.json
正如您所看到的,我的
src
文件夹分为
app
,其中包含我的应用程序实现和一个
package
文件夹,该文件夹应该更“抽象”,以便最终有一天成为一个包

我想要的是访问我的软件包模块,并在我的应用程序文件夹中写入以下内容:

import Database from 'packages/database';
而不是

import Database from '../packages/database/index';
我在
tsconfig.json
文件中查看了
路径
配置,但无法使其正常工作:

{
  "compilerOptions": {

    ...

    "baseUrl": ".",
    "paths": {
      "packages": ["src/packages"]
    }
  }
}
当然,我也想继续访问
节点\u模块
文件夹

我如何才能做到这一点?


感谢您的回复

我认为最好的解决方案是将您的工作分成几个包:

例如,您将拥有一个包数据库包,它将使所有与数据库相关的工作为您服务

为此,您需要稍微修改一下结构:

myProject/
├── node_modules/
├── src/
│   ├── app
│       ├── index.ts
│   ├── packages
│       ├── database
│           ├── SomeClass.ts
│           ├── index.ts
├── package.json
├── tsconfig.json
然后在
数据库/index.ts
文件中进行所有导出:

import SomeClass from './SomeClass'
import SomeOtherClass from './SomeOtherClass'

export {SomeClass, SomeOtherClass}
您可以从应用程序文件夹中访问它,键入:

import {SomeClass} from 'package-database';
当然,您还需要修改
tsconfig.json
,您已经接近它了:

{
    "compilerOptions": {

    ...

    "baseUrl": ".",
    "paths": {
        "package-database": ["src/packages/database"]
        }
    } 
}