簡體   English   中英

是否可以在本地 package 導入中使用 package 名稱?

[英]Is it possible to use the package name in a local package import?

我正在構建一個 package 並且我只想在調用同一本地 package 的某個 function 時構建測試。 我不想過多介紹細節,但我正在使用 Babel 插件遍歷代碼以查找特定的模塊導入以執行某些操作。

問題是,當我導入此 function 時,我使用語言環境路徑,如下所示:

import { myFunction } from './';

我希望有類似的東西:

import { myFunction } from 'my-real-package-name';

我嘗試在本地安裝我的 package 但現在嘗試構建時出現此錯誤:

error TS5055: Cannot write file '/my-real-package-name/lib/index.d.ts' because it would overwrite input file.

我總是可以檢查導入是否來自./my-real-package-name但我更喜歡只使用my-real-package-name ,因為這樣可以更安全地避免出現意外問題。

還有另一種方法可以實現這一目標嗎?

我認為您正在尋找的是npm linkyarn link ,具體取決於您的 package 經理。

來自 npm 文檔頁面:

這對於安裝你自己的東西很方便,這樣你就可以在它上面工作和迭代測試,而不必不斷地重建。

Package 鏈接是一個兩步過程。

First, npm link in a package folder with no arguments will create a symlink in the global folder {prefix}/lib/node_modules/ that links to the package where the npm link command was executed. 它還將 package 中的所有 bin 鏈接到 {prefix}/bin/{name}。 請注意,npm 鏈接使用全局前綴(有關其值,請參見 npm 前綴 -g)。

接下來,在其他位置,npm link package-name 將創建一個從全局安裝的 package-name 到當前文件夾的 node_modules/ 的符號鏈接。

例如:

 cd ~/projects/node-redis # go into the package directory npm link # creates global link cd ~/projects/node-bloggy # go into some other package directory. npm link redis

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM