[Resolvido] Webpack erro: ‘The provided value <output.path> is not an absolute path!
![[Resolvido] Webpack erro: &#8216;The provided value <output.path> is not an absolute path!](https://raccoon.ninja/imgs/featured_image_default.png)
Overview
Tem um projeto NPM novinho em folha mas esbarrou no erro '-configuration.output.path' ao tentar configurar o webpack? Respira fundo que não é o fim do mundo! Este post vai te mostrar passo a passo como sair dessa roubada com uma solução simples que vai deixar seu setup nos trinques - e salvar a vida dos pandas.
Então você acaba de criar um novo projeto utilizando o NPM, instala o webpack, faz as configurações básicas e…surpresa! Não funciona. Voce recebe a mensagem: -configuration.output.path: The provided value "./build" is not an absolute path! Este post ensina como resolver este problema.
Após criar o projeto, você criou o arquivo webpack.config.js e configurou nele o caminho relativo para um diretório. Neste exemplo, vamos usar o diretório de build e considerar que o arquivo webpack.config.js e a pasta build estão no mesmo nível na estrutura de diretórios do projeto.
Inicialmente, o arquivo webpack.config.js ficou assim:
1module.exports = {
2 entry: ['./app/index.js'],
3 output: {
4 path: './build',
5 filename: 'bundle.js'
6 }
7}
Então você, para testar, executou o comando npm run build e foi agraciado com o seguinte erro:
1Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
2 - configuration.output.path: The provided value "./build/" is not an absolute path!
Não importa o valor que você coloque na propriedade path, sempre ocorrerá este erro. Mesmo se você colocar o caminho absoluto para o diretório…coisa que você não vai fazer, por que cada vez que você coloca um caminho absoluto fixo no código, um panda morre.
A solução é bem simples. Altere o webpack.config.js para que fique desta forma:
1const path = require('path');
2
3module.exports = {
4 entry: ['./app/index.js'],
5 output: {
6 path: path.resolve(__dirname, 'build'),
7 filename: 'bundle.js'
8 }
9}
Isso irá resolver o problema e manter o caminho do arquivo relativo. Este problema parece ocorrer desde a versão 2.3.0 e aconteceu comigo na 3.4.1.
Espero ter ajudado.
*Update 24/08/2017*: Ajustado um erro de ortografia no titulo.