From d6665ddc62f6c3661e618213773494485db5bbfb Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Sun, 20 Aug 2023 10:40:15 -0400 Subject: [PATCH 1/3] Adding embedded sourcemaps --- config/services.php | 1 + src/DependencyInjection/SymfonycastsSassExtension.php | 9 +++++++++ src/SassBuilder.php | 7 ++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/config/services.php b/config/services.php index e46091e..e54490f 100644 --- a/config/services.php +++ b/config/services.php @@ -17,6 +17,7 @@ abstract_arg('path to css directory'), param('kernel.project_dir'), abstract_arg('path to binary'), + abstract_arg('embed sourcemap'), ]) ->set('sass.command.build', SassBuildCommand::class) diff --git a/src/DependencyInjection/SymfonycastsSassExtension.php b/src/DependencyInjection/SymfonycastsSassExtension.php index faa8c00..ed0a6b9 100644 --- a/src/DependencyInjection/SymfonycastsSassExtension.php +++ b/src/DependencyInjection/SymfonycastsSassExtension.php @@ -19,8 +19,12 @@ class SymfonycastsSassExtension extends Extension implements ConfigurationInterface { + private bool $isDebug; + public function load(array $configs, ContainerBuilder $container): void { + $this->isDebug = $container->getParameter('kernel.debug'); + $loader = new Loader\PhpFileLoader($container, new FileLocator(__DIR__.'/../../config')); $loader->load('services.php'); @@ -31,6 +35,7 @@ public function load(array $configs, ContainerBuilder $container): void ->replaceArgument(0, $config['root_sass']) ->replaceArgument(1, '%kernel.project_dir%/var/sass') ->replaceArgument(3, $config['binary']) + ->replaceArgument(4, $config['embed_sourcemap']) ; $container->findDefinition('sass.css_asset_compiler') @@ -64,6 +69,10 @@ public function getConfigTreeBuilder(): TreeBuilder ->info('The Sass binary to use') ->defaultNull() ->end() + ->scalarNode('embed_sourcemap') + ->info('Whether to embed the sourcemap in the compiled CSS') + ->defaultValue($this->isDebug) + ->end() ->end() ; diff --git a/src/SassBuilder.php b/src/SassBuilder.php index 444bb34..c200a9c 100644 --- a/src/SassBuilder.php +++ b/src/SassBuilder.php @@ -24,7 +24,8 @@ public function __construct( private readonly array $sassPaths, private readonly string $cssPath, private readonly string $projectRootDir, - private readonly ?string $binaryPath + private readonly ?string $binaryPath, + private readonly bool $embedSourcemap, ) { } @@ -38,6 +39,10 @@ public function runBuild(bool $watch): Process $args[] = '--watch'; } + if ($this->embedSourcemap) { + $args[] = '--embed-source-map'; + } + $process = $binary->createProcess($args); if ($watch) { From d5f88cd98ed618fa2f5a2e976fafee4a15e1d20f Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Mon, 21 Aug 2023 09:12:57 -0400 Subject: [PATCH 2/3] fixing tests --- tests/SassBuilderTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/SassBuilderTest.php b/tests/SassBuilderTest.php index 3f891a4..a651d96 100644 --- a/tests/SassBuilderTest.php +++ b/tests/SassBuilderTest.php @@ -27,6 +27,7 @@ public function testIntegration(): void __DIR__.'/fixtures/assets', __DIR__.'/fixtures', null, + false ); $process = $builder->runBuild(false); From 88ca6bd3bd03681321b800b3753c2f7bb2c90620 Mon Sep 17 00:00:00 2001 From: Ryan Weaver Date: Mon, 21 Aug 2023 09:30:35 -0400 Subject: [PATCH 3/3] adding more clarification to the docs --- src/DependencyInjection/SymfonycastsSassExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DependencyInjection/SymfonycastsSassExtension.php b/src/DependencyInjection/SymfonycastsSassExtension.php index ed0a6b9..360b791 100644 --- a/src/DependencyInjection/SymfonycastsSassExtension.php +++ b/src/DependencyInjection/SymfonycastsSassExtension.php @@ -70,7 +70,7 @@ public function getConfigTreeBuilder(): TreeBuilder ->defaultNull() ->end() ->scalarNode('embed_sourcemap') - ->info('Whether to embed the sourcemap in the compiled CSS') + ->info('Whether to embed the sourcemap in the compiled CSS. By default, enabled only when debug mode is on.') ->defaultValue($this->isDebug) ->end() ->end()