private function getWebpackNode()
    {
        $treeBuilder = new TreeBuilder('webpack');
        /** @var ArrayNodeDefinition $node */
        $node = $treeBuilder->getRootNode();

        $node
            ->canBeDisabled()
            ->addDefaultsIfNotSet()
            ->children()
            ->enumNode('adapter')
            ->values(['auto', 'manifest', 'assets'])
            ->defaultValue('auto')
            ->cannotBeEmpty()
            ->end()
            ->arrayNode('manifest_adapter')
            ->addDefaultsIfNotSet()
            ->children()
            ->scalarNode('file')->defaultNull()->end()
            ->end()
            ->end()
            ->arrayNode('assets_adapter')
            ->addDefaultsIfNotSet()
            ->children()
            ->scalarNode('file')->defaultValue($this->projectDir.'/assets.json')->end()
            ->arrayNode('cache')
            ->addDefaultsIfNotSet()
            ->children()
            ->booleanNode('enabled')->defaultValue(null)->end()
            ->booleanNode('key')->defaultValue('fxp_require_asset_webpack_assets')->end()
            ->scalarNode('service_id')->defaultValue('cache.app')->end()
            ->end()
            ->end()
            ->end()
            ->end()
            ->end()
        ;

        return $node;
    }