![](/img/trans.png)
[英]Typescript compilerOptions module & moduleResolution
[英]Does typescript baseUrl flag override the resolution mechanism of moduleResolution: node?
我已經在moduleResolution 中紅色了模塊分辨率的官方文檔。 我們使用--moduleResolution
來設置解析方法,我們建議使用node
方法,它會從當前目錄向上查找node_modules
目錄中的非相關模塊。
但也DOC mentiones 附加模塊的分辨率,這將找到所指定的目錄非親屬模塊baseUrl
。
那么這是否意味着如果我們設置baseUrl
,模塊解析過程將完全忽略node_modules
目錄?
要回答您的問題 -是的,模塊解析過程將忽略node_modules
文件夾,並且非相對名稱將被假定為相對於baseUrl
。
但請注意,在使用AMD
模塊加載器的應用程序中,使用baseUrl
是一種常見做法,其中模塊在運行時“部署”到single folder
中。
如果該single folder
不包含non-relative
模塊,例如在某些情況下您希望這些庫存在於特定文件夾中,那么您必須使用path-mapping
來解決問題。
例如,如果您使用的是moment
庫,並且它被放置在您的模塊正在尋找它的根文件夾下的特定目錄中,那么您必須在 tsconfig.json 文件中明確提及如下所示的路徑 -
"baseUrl": "." ,
"paths": {
"moment": ["node_modules/moment/ts3.1-typings/moment"] // This mapping is relative to "baseUrl"
},
對於non-absolute
模塊分辨率,請參見here
-
但通常,如果您正在使用 node 編寫新應用程序,請使用“ commonjs
”模塊而不是AMD
模塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.