2017-10-18 68 views
2

我想包括一個本地庫,所以我遵循這兩個教程: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

回答

1
import defaultExport from './local-file' 

或者

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

感謝您的快速回答。這可能適用於單個文件 - 但我正在研究如何使它適用於整個圖書館。我會檢查一下。 –

+0

另外,從「../../../../../lib/my-test-lib」導入{HelloWorld};看起來並不酷 –

+0

雖然,是的,它適用於單個文件。謝謝,我會讚揚它 - 但不會將其標記爲答案,因爲它不回答問題。 –