webpack: Module build failed: Error: Final loader (unknown) didn't return a Buffer or String

Bug report

What is the current behavior? Webpack 5.1.0 throws an error on compile, while webpack 4.44.2 completes successfully:

ERROR in #web/bundles/sonatacore/vendor/select2/select2.css
Module build failed: Error: Final loader (unknown) didn't return a Buffer or String
    at processResult (/home/app/src/node_modules/webpack/lib/NormalModule.js:592:17)
    at runLoaders (/home/app/src/node_modules/webpack/lib/NormalModule.js:669:5)
    at /home/app/src/node_modules/loader-runner/lib/LoaderRunner.js:404:3
    at iterateNormalLoaders (/home/app/src/node_modules/loader-runner/lib/LoaderRunner.js:233:10)
    at processResource (/home/app/src/node_modules/loader-runner/lib/LoaderRunner.js:227:3)
    at iteratePitchingLoaders (/home/app/src/node_modules/loader-runner/lib/LoaderRunner.js:171:10)
    at runLoaders (/home/app/src/node_modules/loader-runner/lib/LoaderRunner.js:395:2)
    at NormalModule.doBuild (/home/app/src/node_modules/webpack/lib/NormalModule.js:624:3)
    at NormalModule.build (/home/app/src/node_modules/webpack/lib/NormalModule.js:768:15)
    at module.needBuild (/home/app/src/node_modules/webpack/lib/Compilation.js:1083:12)
    at NormalModule.needBuild (/home/app/src/node_modules/webpack/lib/NormalModule.js:969:32)
    at Compilation._buildModule (/home/app/src/node_modules/webpack/lib/Compilation.js:1066:10)
    at hooks.beforeStart.callAsync.err (/home/app/src/node_modules/webpack/lib/util/AsyncQueue.js:235:10)
    at Hook.eval [as callAsync] (eval at create (/home/app/src/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncQueue._startProcessing (/home/app/src/node_modules/webpack/lib/util/AsyncQueue.js:228:26)
    at AsyncQueue._ensureProcessing (/home/app/src/node_modules/webpack/lib/util/AsyncQueue.js:218:9)
    at runCallback (timers.js:705:18)
    at tryOnImmediate (timers.js:676:5)
    at processImmediate (timers.js:658:5)
 @ ./src/Evp/Bundle/AdminBundle/Resources/assets/standard-layout/style.js 1:219-278

the contens of style.js:

import 'font-awesome/css/font-awesome.css';
import '#web/bundles/sonatacore/vendor/ionicons/css/ionicons.css';
import '#web/bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css';
import '#web/bundles/sonatacore/vendor/select2/select2.css';
import '#web/bundles/sonatacore/vendor/select2-bootstrap-css/select2-bootstrap.min.css';
import '#web/bundles/sonataadmin/vendor/admin-lte/dist/css/skins/skin-black-light.css';
import '#web/bundles/sonataadmin/vendor/jqueryui/themes/base/jquery-ui.css';
import '#web/bundles/sonataadmin/vendor/iCheck/skins/square/blue.css';
import '#web/bundles/sonataadmin/vendor/admin-lte/dist/css/AdminLTE.css';
import '#web/bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/css/bootstrap-editable.css';
import '#web/bundles/sonataadmin/css/styles.css';
import '#web/bundles/sonataadmin/css/layout.css';
import '#web/bundles/sonataadmin/css/tree.css';
import 'bootstrap3-wysihtml5-bower/dist/bootstrap3-wysihtml5.css';
import '#evp_admin/standard-layout/less/backend_theme.less';

the webpack.config.js part regarding styles looks like this:

            {
                test: /\.(css|less|scss)$/i,
                exclude: modulePath => /ckeditor5-/.test(modulePath),
                use: [
                    {
                        loader: MiniCssExtractPlugin.loader,
                    },
                    {
                        loader: 'css-loader',
                        options: {
                            sourceMap: true,
                        },
                    },
                    {
                        loader: 'postcss-loader',
                        options: {
                            postcssOptions: {
                                plugins: [
                                    [
                                        'postcss-preset-env',
                                    ],
                                ],
                            },
                        },
                    },
                ],
            },
            {
                test: /\.less$/i,
                enforce: 'pre',
                use: [
                    {
                        loader: 'less-loader',
                        options: {
                            sourceMap: true,
                        },
                    },
                ],
            },
            {
                test: /\.scss$/i,
                enforce: 'pre',
                use: [
                    {
                        loader: 'sass-loader',
                        options: {
                            sourceMap: true,
                        },
                    },
                ],
            },

package.json:

    "cache-loader": "^4.1.0",
    "bundle-loader": "^0.5.6",
    "babel-loader": "^8.1.0",
    "css-loader": "^5.0.0",
    "exports-loader": "^1.1.1",
    "expose-loader": "^1.0.1",
    "file-loader": "^6.1.1",
    "image-webpack-loader": "^7.0.1",
    "imports-loader": "^1.2.0",
    "null-loader": "^4.0.1",
    "less-loader": "^7.0.2",
    "raw-loader": "^4.0.2",
    "sass-loader": "^10.0.3",
    "script-loader": "^0.7.2",
    "style-loader": "^2.0.0",
    "worker-loader": "^3.0.4",
    "postcss-loader": "^4.0.4",
    
    "mini-css-extract-plugin": "^1.0.0",
    "optimize-css-assets-webpack-plugin": "^5.0.4",
    "terser-webpack-plugin": "^4.2.3",
    
    "webpack": "^5.1.0",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.0",

If the current behavior is a bug, please provide the steps to reproduce. https://github.com/vbartusevicius/webpack5-final-loader-null

What is the expected behavior? It should compile the assets.

Other relevant information: webpack version: 5.1.0 Node.js version: 10.18.1 Operating System: Linux c26e1fafd4c7 5.4.0-48-generic #52-Ubuntu SMP Thu Sep 10 10:58:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux Additional tools: n/a

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 18 (9 by maintainers)

Most upvoted comments

the esilnt complains about missing package #web/bundles vs web/bundles - no such package web

Expected:

  • Alias doesn’t work with #fragment
  • You need to setup eslint (eslint-plugin-import)

I can provide more information and a link to the specification if you want to see it

Spec from node https://nodejs.org/api/esm.html#esm_resolver_algorithm_specification

You should got better message error here, but some loader do not throw error on this