- configuration.output.path: The provided value "public" is not an absolute path! with Webpack

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?


Solution 1:

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 `/`

Solution 2:

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

Solution 3:

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)