使用本地模块,使用本地依赖关系
我想包括一个本地库,所以我遵循这两个教程: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";
不工作。想知道,我该如何调试。
import defaultExport from './local-file'
或者
import { namedExport } from './local-file'
感谢您的快速回答。这可能适用于单个文件 - 但我正在研究如何使它适用于整个图书馆。我会检查一下。 –
另外,从“../../../../../lib/my-test-lib”导入{HelloWorld};看起来并不酷 –
虽然,是的,它适用于单个文件。谢谢,我会赞扬它 - 但不会将其标记为答案,因为它不回答问题。 –
你可能包括您参考当地的图书馆。 – HerbN
是的,我在package.json中看到一行“my-test-lib”:“file:../ libs/my-test-lib”,但我仍然不能将它用于相同的错误“不能找到模块” 。 –
如果你发现“如果是的话,那么这个问题的主要目的就是要弄清楚为什么”可能编辑问题只包含这个问题 - 没有任何额外的问题的最小表示。 – Nenotlep