arcanis / ts-pnp

Transparently adds support for Plug'n'Play to TypeScript
67 stars 9 forks source link

TypeError: request.match is not a function or its return value is not iterable #10

Open gugr opened 2 years ago

gugr commented 2 years ago

Hey! Just trying move my project to yarn PnP. I am using ts-loader with Webpack 5. Can't build project because of this error:

Module build failed (from ../.yarn/__virtual__/ts-loader-virtual-074b18b8f1/0/cache/ts-loader-npm-9.3.0-e4822b8ab8-90755ac585.zip/node_modules/ts-loader/index.js):
TypeError: request.match is not a function or its return value is not iterable
    at resolveModuleName (C:\Users\gugr\Documents\projects\frontend\.yarn\__virtual__\ts-pnp-virtual-04186d9d5c\0\cache\ts-pnp-npm-1.2.0-43620de7df-c2a698b85d.zip\node_modules\ts-pnp\index.js:4:59)   
    at C:\Users\gugr\Documents\projects\frontend\.yarn\__virtual__\ts-loader-virtual-074b18b8f1\0\cache\ts-loader-npm-9.3.0-e4822b8ab8-90755ac585.zip\node_modules\ts-loader\dist\servicesHost.js:725:43    at C:\Users\gugr\Documents\projects\frontend\.yarn\__virtual__\ts-loader-virtual-074b18b8f1\0\cache\ts-loader-npm-9.3.0-e4822b8ab8-90755ac585.zip\node_modules\ts-loader\dist\servicesHost.js:129:46    at Array.map (<anonymous>)
    at Object.resolveTypeReferenceDirectives (C:\Users\gugr\Documents\projects\frontend\.yarn\__virtual__\ts-loader-virtual-074b18b8f1\0\cache\ts-loader-npm-9.3.0-e4822b8ab8-90755ac585.zip\node_modules\ts-loader\dist\servicesHost.js:129:29)
    at actualResolveTypeReferenceDirectiveNamesWorker (C:\Users\gugr\Documents\projects\frontend\.yarn\cache\typescript-patch-387d77a6ef-7e2b9a9f4a.zip\node_modules\typescript\lib\typescript.js:116720:163)
    at resolveTypeReferenceDirectiveNamesWorker (C:\Users\gugr\Documents\projects\frontend\.yarn\cache\typescript-patch-387d77a6ef-7e2b9a9f4a.zip\node_modules\typescript\lib\typescript.js:117020:26)  
    at processTypeReferenceDirectives (C:\Users\gugr\Documents\projects\frontend\.yarn\cache\typescript-patch-387d77a6ef-7e2b9a9f4a.zip\node_modules\typescript\lib\typescript.js:118502:31)
    at findSourceFileWorker (C:\Users\gugr\Documents\projects\frontend\.yarn\cache\typescript-patch-387d77a6ef-7e2b9a9f4a.zip\node_modules\typescript\lib\typescript.js:118387:21)
    at findSourceFile (C:\Users\gugr\Documents\projects\frontend\.yarn\cache\typescript-patch-387d77a6ef-7e2b9a9f4a.zip\node_modules\typescript\lib\typescript.js:118242:26)

webpack.config.js:

module.exports = {
  context: path.resolve(__dirname, "src"),
  mode: "development",
  entry: {
    main: ["./index.tsx"],
  },
  output: {
    filename: filename("js"),
    path: path.resolve(__dirname, "dist"),
  },
  optimization: optimization(),
  devServer: {
    port: 4200,
    hot: isDev,
    historyApiFallback: true,
  },
  plugins: plugins(),
  module: {
    rules: [
      {
        test: /\.s[ac]ss$/,
        use: [
          'css-loader',
          { loader: 'sass-loader', options: { implementation: require("sass"), } }
        ],
      },
      {
        test: /\.(png|jpg|gif)$/,
        type: 'asset/resource'
      },
      {test: /\.(ttf|woff|woff2|eot|svg)$/, type: 'asses/inline'},
      {
        test: /\.jsx?$/,
        use: [
          { loader: require.resolve('babel-loader') }
        ]
      },
      {
        test: /\.tsx?$/,
        use: [
          { loader: require.resolve('babel-loader') },
          {
            loader: require.resolve('ts-loader'),
            options: PnpWebpackPlugin.tsLoaderOptions()
          }
        ]
      }
    ],
  },
  resolve: {
    plugins: [
      PnpWebpackPlugin,
    ],
    extensions: [".tsx", ".ts", ".js"],
    alias: {
      //...
    },
  },
  resolveLoader: {
    plugins: [
      PnpWebpackPlugin.moduleLoader(module),
    ],
  },
}