我正在尝试将LernaJS与typescript一起使用,但遇到一些问题。当我尝试运行将package-2作为依赖项的package-1时,出现错误消息:
module.js:549
抛出错误;
^

错误:找不到模块“package-2”
在Function.Module._resolveFilename(module.js:547:15)
在Function.Module._load(module.js:474:25)
在Module.require(module.js:596:17)
在要求时(internal/module.js:11:18)
在对象。 (/home/gabriel/Documentos/projetos/nodejs/lerna-t2/packages/package-1/dist/index.js:3:19)
在Module._compile(module.js:652:30)
在Object.Module._extensions..js(module.js:663:10)
在Module.load(module.js:565:32)
在tryModuleLoad(module.js:505:12)
在Function.Module._load(module.js:497:3)

我已按照以下步骤操作:

  • 我创建了一个目录并运行了命令'lerna init'
  • 我已经在(package-1,package-2)“packages”文件夹
  • 中创建了2个文件夹


    ├──lerna.json
    ├──node_modules
    ├──package.json
    ├──package-lock.json
    └──套餐
    ├──套餐1
    └──套餐2
  • 我都在(package-1,package-2)
  • 中都运行了'npm init'
  • 我在两个软件包中都创建了一个基本的'tsconfig.json':

  • {
    “compilerOptions”:{
    “outDir”:“dist”,
    “target”:“es5”,
    “module”:“commonjs”
    }
    }
  • 我已经在根文件夹
  • 中运行了“lerna bootstrap”
  • 我使用了'lerna add package-2 --scope = package-1'
  • 我也在根文件夹package-1和package-2中运行了'npm i'
  • 我已经在package-1和package-2中运行了'tsc -w',并且在package-1中运行了'node dist/index.js'

    文件树
    我的“package-1”文件树:


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

    我的“package-2”文件树:


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

    CODE
    包1 :
  • index.ts:

  • 从'package-2'导入{Teste}

    新的Teste()。printHello()

    包2 :
  • lib/teste.ts:

  • 导出类别Teste {

    printHello(){
    console.log('你好!')
    }

    }
  • index.ts:

  • 从'./lib/teste'导出{Teste}

    最佳答案

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

    主要应该链接到dist/index.js

    10-08 08:45
    查看更多