如何使用纯TypeScript库作为Webpack的依赖?

时间:2017-12-07 08:25:10

标签: javascript typescript webpack

我有3个回购 - clientbackendinterfaces

所有都是用TypeScript编写的。客户端和后端repos在构建阶段编译成JavaScript,然后部署到服务器。

最后一个repo interfaces不应该编译成任何东西,而只是用作客户端和后端repos的npm依赖关系,声明客户端和后端应用程序如何相互通信。

在我介绍interfaces repo并将其作为依赖关系添加到其他repos之前,我使用了硬编码的消息类型字符串,所有编译都很好。

现在,使用interfaces纯粹的TypeScript依赖项,我可以将其中的类型注入clientbackend repos代码,并看到它们正确连接。

但问题是我现在无法编译项目,因为在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。

如果它在我想的项目的另一个文件夹中,这个接口代码将正常工作。

如何摆脱此错误并将其导入我的代码然后编译?

1 个答案:

答案 0 :(得分:0)

如果从ts-loader中排除/ node_modules /并不是指望此文件夹中的.ts文件未正确导入?