TsconfigPathsPlugin类型与Webpack 5不兼容。

7
我正在尝试升级到Webpack 5,但是在尝试使用TsconfigPathsPlugin时,现在出现了类型错误。(npm tsconfig-paths-webpack-plugin)。
我需要这个插件来解析文件中的别名路径。您可以在此处查看用法示例: https://betterprogramming.pub/the-right-usage-of-aliases-in-webpack-typescript-4418327f47fa
resolve: {
    extensions: [...],

    // resolve aliases from tsconfig.server.json
    plugins: [
      new TsconfigPathsPlugin({ // type error here
        configFile: './tsconfig.server.json',
      }),
    ],

    alias: {...},
},

我遇到了以下错误:

Type 'TsconfigPathsPlugin' is not assignable to type '"..." | ResolvePluginInstance'.
Type 'TsconfigPathsPlugin' is not assignable to type 'ResolvePluginInstance'.
Types of property 'apply' are incompatible.

我觉得这不是一个普遍的问题,因为我在其他地方没有看到任何提及它的地方,但我认为我至少能找到一个遇到同样问题的人。

最新版本似乎运行良好。类型错误表明您的配置中可能有一个字符串 '...' - Oblosys
啊,没想到。在这种情况下,我没有其他建议,除了清除 node_modules 并尝试创建一个新的 package-lock.json - Oblosys
1
@Oblosys 也尝试过了,不幸的是。与此同时,我已经降级了 webpack,我相信在未来的几个小版本中,一些东西会让它正常工作的 :shrug: 不管怎样,还是谢谢。 - Brett East
1
@BrettEast 如果你将来再试一次,请尝试包装插件。(new TsconfigPathsPlugin({ // type error here configFile: './tsconfig.server.json', }) as unknown) as ResolvePluginInstance. 这对我很有帮助。这是由于某些插件未完成类型定义。 - breezertwo
我认为我遇到了同样的问题,最终将生成的插件实例转换为正确的类型,似乎就可以正常工作了... - Mati
显示剩余3条评论
2个回答

3

我也遇到了同样的问题,但是今天我发现该插件适用于以下版本。

"tsconfig-paths-webpack-plugin": "^3.5.1",
"webpack": "^5.51.1",

0

我也遇到了同样的问题,但是使用以下版本:

"tsconfig-paths-webpack-plugin": "^3.5.1",
"webpack": "^5.9.0",

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接