我正在尝试使用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 回答
请确保您在package.json中定义了
main
(至少是project-2) . 我假设package.json中的name字段(对于project-2)是project-2
.主要链接到
dist/index.js