簡體   English   中英

如何使用純TypeScript庫作為Webpack的依賴?

[英]How to use a pure TypeScript library as a dependency with Webpack?

我有3個repos - clientbackendinterfaces

所有都是用TypeScript編寫的。 客戶端和后端repos在構建階段編譯成JavaScript,然后部署到服務器。

最后的repo interfaces不應該編譯成任何東西,而只是用作客戶端和后端repos的npm依賴關系,聲明客戶端和后端應用程序如何相互通信。

在我介紹interfaces repo並將其作為依賴關系添加到其他repos之前,我使用了硬編碼的消息類型字符串,所有編譯都很好。

現在,使用純粹的TypeScript依賴項(即interfaces ,我可以將類型從它注入clientbackend庫代碼,並看到它們正確連接。

但問題是我現在無法編譯項目,因為在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.

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