使用本地模块,使用本地依赖关系

问题描述:

我想包括一个本地库,所以我遵循这两个教程:how to create library,how to consume local library。所以,我有一个很好的示例库(它有package.json,index.ts等),我试图将其包含在我的主项目(npm link工作正常,我可以看到一个符号链接到我的lib),但我不能转介它来自我的主要项目。使用本地模块,使用本地依赖关系

import { HelloWorld } from "my-test-lib"; // "Cant find module" 

而且,我试图通过npm install ../libs/my-test-lib安装它,但结果都是一样的:“不能找到模块”。有关如何将其纳入我的项目的任何建议?

PS:我更喜欢npm install之类的东西,所以我可以将这个改变提交到版本库(与npm link相反)。

EDIT(为什么它不重复):在how to specify local modules as npm package dependencies它不清楚哪个方向走:既"bar":"file:../foo/bar"npm link不工作,我上面提到的原因。

编辑2:好的,我已经在package.json中尝试了"preinstall": "npm ln my-test-lib ../libs/my-test-lib"。然后import { HelloWorld } from "my-test-lib";。还是一样的错误“无法找到模块”。包装本身可能有问题吗?

EDIT3:所以,是的,这个问题的要点是要弄清楚为什么

// package.json 
"dependencies": { 
    "my-test-lib": "file:../lib/my-test-lib" 
} 

// ts file 
import { HelloWorld } from "my-test-lib"; 

不工作。想知道,我该如何调试。

+0

你可能包括您参考当地的图书馆。 – HerbN

+0

是的,我在package.json中看到一行“my-test-lib”:“file:../ libs/my-test-lib”,但我仍然不能将它用于相同的错误“不能找到模块” 。 –

+0

如果你发现“如果是的话,那么这个问题的主要目的就是要弄清楚为什么”可能编辑问题只包含这个问题 - 没有任何额外的问题的最小表示。 – Nenotlep

import defaultExport from './local-file' 

或者

import { namedExport } from './local-file' 
+1

感谢您的快速回答。这可能适用于单个文件 - 但我正在研究如何使它适用于整个图书馆。我会检查一下。 –

+0

另外,从“../../../../../lib/my-test-lib”导入{HelloWorld};看起来并不酷 –

+0

虽然,是的,它适用于单个文件。谢谢,我会赞扬它 - 但不会将其标记为答案,因为它不回答问题。 –