[英]How to use a pure TypeScript library as a dependency with Webpack?
我有3個repos - client
, backend
和interfaces
。
所有都是用TypeScript編寫的。 客戶端和后端repos在構建階段編譯成JavaScript,然后部署到服務器。
最后的repo interfaces
不應該編譯成任何東西,而只是用作客戶端和后端repos的npm依賴關系,聲明客戶端和后端應用程序如何相互通信。
在我介紹interfaces
repo並將其作為依賴關系添加到其他repos之前,我使用了硬編碼的消息類型字符串,所有編譯都很好。
現在,使用純粹的TypeScript依賴項(即interfaces
,我可以將類型從它注入client
或backend
庫代碼,並看到它們正確連接。
但問題是我現在無法編譯項目,因為在Webpack中似乎沒有正確配置這種情況。
這是webpack.config.js
的相關部分:
module: {
rules: [
{
test: /\.js$/,
use: 'babel-loader',
// exclude: /node_modules/
},
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
有了這個,我在嘗試使用webpack構建時發現錯誤:
./node_modules/myapp_interfaces/interfaces/ClientRequestPayload.ts中的錯誤
模塊解析失敗:保留關鍵字'interface'(1:0)
您可能需要適當的加載程序來處理此文件類型。
如果我注釋掉exclude: /node_modules/
,我看到這個:
錯誤在./node_modules/myapp_interfaces/index.ts中
模塊構建失敗:錯誤:Typescript沒有為/myapp/myapp_backend/node_modules/myapp_interfaces/index.ts發出任何輸出。
您不需要在node_modules中重新編譯.ts文件。
請聯系包裹作者,建議他們使用--declaration --outDir。
如果它在我想的項目的另一個文件夾中,這個接口代碼將正常工作。
我如何擺脫這個錯誤,只是將它們導入我的代碼然后編譯?
如果從ts-loader中排除/ node_modules /不是預期此文件夾中的.ts文件未正確導入?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.