image-webpack-loader icon indicating copy to clipboard operation
image-webpack-loader copied to clipboard

Requiring any image breaks when running webpack on Windows

Open gryzzly opened this issue 6 years ago • 0 comments

We had to replace this loader with svgo-loader (that is the only optimisation we applied). Previous (3.4.x) as well as the most current published versions were breaking the build when on Windows (not on *nix).

Requiring any image from css modules (cssm files below) resulted in the following errors:

./src/components/chrome/AppHeader.cssm
Module build failed: ModuleBuildError: Module build failed: Error: ENOENT: no such file or directory, lstat 'C:\Users\User\Source\idagio-web\undefined'
    at Error (native)
    at Object.fs.lstatSync (fs.js:995:11)
    at Object.realpathSync (fs.js:1676:21)
    at Object.<anonymous> (C:\Users\User\Source\idagio-web\node_modules\temp-dir\index.js:9:13)
    at Module._compile (module.js:570:32)
    at Module._extensions..js (module.js:579:10)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\User\Source\idagio-web\node_modules\babel-register\lib\node.js:152:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at runLoaders (C:\Users\User\Source\idagio-web\node_modules\webpack\lib\NormalModule.js:195:19)
    at C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:364:11
    at C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:170:18
    at loadLoader (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\loadLoader.js:27:11)
    at iteratePitchingLoaders (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:169:2)
    at iteratePitchingLoaders (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:165:10)
    at C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:173:18
    at loadLoader (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\loadLoader.js:36:3)
    at iteratePitchingLoaders (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:169:2)
    at runLoaders (C:\Users\User\Source\idagio-web\node_modules\loader-runner\lib\LoaderRunner.js:362:2)
./src/assets/images/premium/payment__cards.svg
Module build failed: Error: ENOENT: no such file or directory, lstat 'C:\Users\User\Source\idagio-web\undefined'
    at Error (native)
    at Object.fs.lstatSync (fs.js:995:11)
    at Object.realpathSync (fs.js:1676:21)
    at Object.<anonymous> (C:\Users\User\Source\idagio-web\node_modules\temp-dir\index.js:9:13)
    at Module._compile (module.js:570:32)
    at Module._extensions..js (module.js:579:10)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\User\Source\idagio-web\node_modules\babel-register\lib\node.js:152:7)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
 @ ./src/components/premium/PaymentStep.cssm 7:5453-5504

Relevant parts of webpack config:

    {
        test: /\.(jpe?g|png|gif|svg)$/,
        include: /src/,
        use: [
          'file-loader',
          {
            loader: 'image-webpack-loader',
            options: { svgo: { plugins: [{ removeUselessDefs: false }]}},
          },
        ],
      },
    {
        test: /\.cssm$/,
        include: /src/,
        use: ExtractTextPlugin.extract({
          use: [
            {
              loader: 'css-loader',
              options: {
                publicPath: path.resolve(__dirname, './', 'src'),
                localIdentName: '[folder]-[name]__[local]--[hash:base64:5]',
                modules: true,
              },
            },
            'postcss-loader',
          ],
        }),
      },

gryzzly avatar Feb 06 '18 11:02 gryzzly