Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony2资产和更少的源地图_Php_Symfony_Less_Assetic_Source Maps - Fatal编程技术网

Php Symfony2资产和更少的源地图

Php Symfony2资产和更少的源地图,php,symfony,less,assetic,source-maps,Php,Symfony,Less,Assetic,Source Maps,我不确定如何破解AssetLess过滤器以输出sourcemap文件。我指的是这里的LessFilter 是创建Symfony\Component\Process\Process对象的位置 $proc = $pb->getProcess(); $code = $proc->run(); 问题是这个输出被放在一个文件中。我不确定如何生成第二个sourcemap文件 如何扩展此过滤器或破解Assetic core以实现此功能?是的,这是正确的位置。然而,你不需要破解它。扩展它

我不确定如何破解AssetLess过滤器以输出sourcemap文件。我指的是这里的LessFilter

是创建
Symfony\Component\Process\Process
对象的位置

  $proc = $pb->getProcess();
  $code = $proc->run();
问题是这个输出被放在一个文件中。我不确定如何生成第二个sourcemap文件


如何扩展此过滤器或破解Assetic core以实现此功能?

是的,这是正确的位置。然而,你不需要破解它。扩展它

我用这个:

# Using less source maps with Symfony
namespace Acme\MyBundle\Assetic;

use Assetic\Asset\AssetInterface;

class LessFilter extends AsseticLessFilter
{
    public function filterLoad(AssetInterface $asset)
    {
        $sourcemapRoot = realpath(dirname($asset->getSourceRoot() . '/' . $asset->getSourcePath()));

        $this->addTreeOption('sourceMap', true);
        $this->addTreeOption('sourceMapBasepath', $sourcemapRoot);

        parent::filterLoad($asset);
    }
}


// config.yml
assetic:
    filters:
        less:
            class: Acme\MyBundle\Assetic\LessFilter
我在这里发现了这个被剪掉的:

它通过添加两个新的树参数来扩展过滤器的filterLoad()方法。可在此处找到所有可用的树参数:


你一定喜欢依赖项注入:)

我发现的另一种显示源代码较少的文件内容而不必修改路径的方法是使用outputSourceFiles标志,它将较少的文件捆绑到生成的css文件中(添加bloat以便仅在开发人员中使用)


如何强制创建
.map
文件(Chrome DevTools中CSS自动重新加载所需)而不是内联贴图。在没有luckI的情况下尝试了
sourceMapOutputFilename
sourceMapFilename
,最终从我的应用程序中完全删除了Assetic。像Gulp和Grunt这样的构建工具允许我做我需要的一切
<?php
...
class LessFilter extends AsseticLessFilter
{
    public function filterLoad(AssetInterface $asset)
    {
        $this->addTreeOption('sourceMap', true);
        $this->addTreeOption('outputSourceFiles', true);

        parent::filterLoad($asset);
    }
}