LernaJS 打字稿找不到模块

LernaJS Typescript cannot find module

我正在尝试将 LernaJS 与打字稿一起使用,但遇到了一些问题。当我尝试 运行 以 package-2 作为依赖项的 package-1 时,出现错误:

    module.js:549
        throw err;
        ^
    
    Error: Cannot find module 'package-2'
        at Function.Module._resolveFilename (module.js:547:15)
        at Function.Module._load (module.js:474:25)
        at Module.require (module.js:596:17)
        at require (internal/module.js:11:18)
        at Object. (/home/gabriel/Documentos/projetos/nodejs/lerna-t2/packages/package-1/dist/index.js:3:19)
        at Module._compile (module.js:652:30)
        at Object.Module._extensions..js (module.js:663:10)
        at Module.load (module.js:565:32)
        at tryModuleLoad (module.js:505:12)
        at Function.Module._load (module.js:497:3)

我已按照以下步骤操作:

  1. 我已经创建了一个目录和 运行 命令 'lerna init'
  2. 我在里面创建了 2 个文件夹 (package-1, package-2) 'packages' 文件夹
    .
    ├── lerna.json
    ├── node_modules
    ├── package.json
    ├── package-lock.json
    └── packages
        ├── package-1
        └── package-2
  1. 我 运行 'npm init' 在两个(package-1,package-2)
  2. 我已经在两个包中创建了一个基本的 'tsconfig.json':
    {
        "compilerOptions": {
            "outDir": "dist",
            "target": "es5",
            "module": "commonjs"
        }
    }
  1. 我在根文件夹运行 'lerna bootstrap'
  2. 我用过'lerna add package-2 --scope=package-1'
  3. 我在根文件夹 package-1 和 package-2 中也 运行 'npm i'
  4. 我在 package-1 和 package-2 中 运行 'tsc -w',在 package-1
  5. 中 'node dist/index.js'

文件树

我的'package-1'文件树:


    .
    ├── dist
    │   └── index.js
    ├── index.ts
    ├── node_modules
    │   ├── package-2 -> ../../package-2
    │   └── typescript
    ├── package.json
    ├── package-lock.json
    └── tsconfig.json

我的'package-2'文件树:


    .
    ├── dist
    │   ├── index.js
    │   └── lib
    │       └── teste.js
    ├── index.ts
    ├── lib
    │   └── teste.ts
    ├── package.json
    ├── package-lock.json
    └── tsconfig.json

代码

包-1:


    import { Teste } from 'package-2'
    
    new Teste().printHello()

package-2:


    export class Teste {
    
        printHello() {
            console.log('Hello!')
        }
    
    }


    export { Teste } from './lib/teste'

请确保您已经在 package.json 中定义了 main(至少是 project-2)。我假设 package.json(对于项目 2)中的名称字段是 project-2

主要应该link到dist/index.js