首页 文章

LernaJS Typescript找不到模块

提问于
浏览
0

我正在尝试使用LernaJS打字稿,但我遇到了一些问题 . 当我尝试运行我的package-1时,包含2作为依赖,我得到错误:

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)

我按照以下步骤操作:

  • 我've created a directory and ran the command ' lerna init'

  • 我've created 2 folders inside (package-1, package-2) ' packages'文件夹

.
    ├── lerna.json
    ├── node_modules
    ├── package.json
    ├── package-lock.json
    └── packages
        ├── package-1
        └── package-2
  • I 've ran ' npm init'两者(package-1,package-2)
    两个包中的
  • I 've created a basic ' tsconfig.json':
{
        "compilerOptions": {
            "outDir": "dist",
            "target": "es5",
            "module": "commonjs"
        }
    }

根文件夹中的

  • I 've ran ' lerna bootstrap'

  • 我've use ' lerna add package-2 --scope = package-1'

  • I 've ran also ' npm i'在根文件夹,package-1和package-2中
    包-1中的

  • I 've ran ' tsc -w ' in package-1 and package-2 and ' node dist / index.js'

FILE TREE

我的'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

CODE

package-1

  • index.ts:
import { Teste } from 'package-2'

    new Teste().printHello()

package-2

  • lib / teste.ts:
export class Teste {

        printHello() {
            console.log('Hello!')
        }

    }
  • index.ts:
export { Teste } from './lib/teste'

1 回答

  • 2

    请确保您在package.json中定义了 main (至少是project-2) . 我假设package.json中的name字段(对于project-2)是 project-2 .

    主要链接到 dist/index.js

相关问题