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:
module.exports = { entry: ['./app/index.js'], output: { path: './build', filename: 'bundle.js' } }
Então você, para testar, executou o comando npm run build e foi agraciado com o seguinte erro:
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema. - 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:
const path = require('path'); module.exports = { entry: ['./app/index.js'], output: { path: path.resolve(__dirname, 'build'), filename: 'bundle.js' } }
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.
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022