[英]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 link
或yarn 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.