LernaJS Typescript не может найти модуль - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь использовать LernaJS с машинописью, и у меня есть некоторые проблемы.Когда я пытаюсь запустить свой пакет-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)

Я выполнил следующие действия:

  1. создал каталог и выполнил команду 'lerna init'
  2. Я создал 2 папки внутри (package-1, package-2) папки 'packages'

    .
    ├── lerna.json
    ├── node_modules
    ├── package.json
    ├── package-lock.json
    └── packages
        ├── package-1
        └── package-2

Я запустил 'npm init' в обоих (пакет-1, пакет-2) Я создал базовый 'tsconfig.json' в обоих пакетах:

    {
        "compilerOptions": {
            "outDir": "dist",
            "target": "es5",
            "module": "commonjs"
        }
    }

Я запустил 'lerna bootstrap' в корневой папке Я использую 'lerna add package-2 --scope = package-1' Я также запустил'npm i' в корневой папке, package-1 и package-2 Я запустил 'tsc -w' в package-1 и package-2 и 'node dist / index.js' в package-1

ДЕРЕВО ФАЙЛА

Мое дерево файлов '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 :

  • 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 Ответ

0 голосов
/ 12 июня 2018

Пожалуйста, убедитесь, что вы определили main в вашем package.json в (по крайней мере, project-2).Я предполагаю, что поле имени в package.json (для проекта-2) - project-2.

Главное должно ссылаться на dist/index.js

...