lucasvscn's avatar

Assets building broke after upgrade to Laravel Mix 4

I have this setup:

const mix = require('laravel-mix');

mix.webpackConfig({
    module: {
  rules: [
    {
      test: /\.scss$/,
      use: [
        {
          loader: 'sass-loader',
          options: {
            includePaths: [
              // teach webpack to resolve these references
              path.resolve(__dirname, 'node_modules', 'patternfly', 'dist', 'sass'),
              path.resolve(__dirname, 'node_modules', 'bootstrap-sass', 'assets', 'stylesheets'),
              path.resolve(__dirname, 'node_modules', 'font-awesome-sass', 'assets', 'stylesheets')
            ]
          }
        }
      ]
    }
  ]
}
});

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', 'public/css');

and it worked as expected with Mix 2.1

but since I upgraded to Mix 4.0.7 it get this errors:

ERROR in ./resources/sass/app.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Cannot find module 'node-sass'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/home/lucas/code/fazendapro2/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
    at Object.sassLoader (/home/lucas/code/fazendapro2/node_modules/sass-loader/lib/loader.js:46:72)
    at runLoaders (/home/lucas/code/fazendapro2/node_modules/webpack/lib/NormalModule.js:301:20)
    at /home/lucas/code/fazendapro2/node_modules/loader-runner/lib/LoaderRunner.js:364:11
    at /home/lucas/code/fazendapro2/node_modules/loader-runner/lib/LoaderRunner.js:230:18
    at runSyncOrAsync (/home/lucas/code/fazendapro2/node_modules/loader-runner/lib/LoaderRunner.js:143:3)
    at iterateNormalLoaders (/home/lucas/code/fazendapro2/node_modules/loader-runner/lib/LoaderRunner.js:229:2)
    at /home/lucas/code/fazendapro2/node_modules/loader-runner/lib/LoaderRunner.js:202:4
    at process.nextTick (/home/lucas/code/fazendapro2/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:73:15)
    at process._tickCallback (internal/process/next_tick.js:61:11)
 @ ./resources/sass/app.scss

ERROR in ./resources/sass/app.scss (./node_modules/css-loader??ref--5-2!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5-4!./node_modules/sass-loader/lib/loader.js??ref--5-5!./node_modules/sass-loader/lib/loader.js??ref--11-0!./resources/sass/app.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Cannot find module 'node-sass'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (/home/lucas/code/fazendapro2/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
    at Object.sassLoader (/home/lucas/code/fazendapro2/node_modules/sass-loader/lib/loader.js:46:72)
 @ ./resources/sass/app.scss 2:14-310

what's wrong?

0 likes
4 replies
realrandyallen's avatar

I believe some sass dependencies were added, these should have been installed automatically on npm install but if it failed you can try manually:

npm install node-sass
lucasvscn's avatar

@realrandyallen thank you.. after install node-sass it change the error to:

 error  in ./resources/sass/app.scss

Syntax Error: ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/src/index.js):
SyntaxError

(2371:2) Missed semicolon

  2369 | input[type="checkbox"] {
  2370 |   margin: 4px 0 0;
> 2371 |   margin-top: 1px ;
       |  ^
  2372 |   line-height: normal; }
  2373 |   input[type="radio"][disabled], input[type="radio"].disabled,

I'm not really into SASS. I believe that's something related to compiling configurations... but I don't know.

It's the very same scss file that I was compiling with Mix 2.1

realrandyallen's avatar

@LUCASVSCN - I don’t think postcss likes that space after that semicolon - in your resources/sass/app.scss file you’ll need to fix that then recompile

Please or to participate in this conversation.