54

I'm using Laravel Mix, that is based on WebPack.

I had it working, and now, it fails with:

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
- configuration.output.path: The provided value "public" is not an absolute path!

If I delete my webpack.mix.js content, it still fails the same way.

Can you help me debug this error, I have no clue how to go forward.

I have already deleted the node_modules folder, and ran npm install, it is still failing.

Any idea how should I solve this?

Juliatzin
  • 18,455
  • 40
  • 166
  • 325

5 Answers5

116

Use __dirname

e.g.

output: {
    path: __dirname + "/dist/js", // or path: path.join(__dirname, "dist/js"),
    filename: "bundle.js"
}

Getting: Error: `output.path` needs to be an absolute path or `/`

Community
  • 1
  • 1
zono
  • 8,366
  • 21
  • 75
  • 113
  • 11
    `path: path.resolve(__dirname, 'dist');` // don't forget `const path = require('path');` – Tawani May 05 '17 at 14:22
19

Lock webpack to 2.2.1 in composer.json

"devDependencies": {
    ...
    "webpack": "2.2.1",
    "laravel-mix": "^0.8.1",
    ...
}

As referenced here:

https://github.com/JeffreyWay/laravel-mix/issues/595

  • 1
    Not so good solution: lock to an old version should be avoided. Updating laravel mix seems to be a better (wise) solution: https://stackoverflow.com/a/44282024/978690 – rap-2-h May 31 '17 at 10:20
7

Quoting this comment:

For anyone else wondering how to take advantage of that fix, you can edit your package.json and make sure your larave-mix version is 0.10 or higher:

"laravel-mix": "^0.10.0",

Then run npm update.

I think the best (cleanest) solution is to update the Laravel Mix to last version (0.12 today)

Community
  • 1
  • 1
rap-2-h
  • 30,204
  • 37
  • 167
  • 263
0

It seems to be a Laravel Mix Incompatibility with Webpack 2.3.0 --> https://github.com/JeffreyWay/laravel-mix/issues/595

Juliatzin
  • 18,455
  • 40
  • 166
  • 325
-1

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - configuration.output.path: The provided value "public" is not an absolute path! -> The output directory as absolute path (required).