Symfony2资产和更少的源图

Mik*_*ike 4 php less symfony assetic source-maps

我不确定如何破解资产较少的过滤器来输出源图文件.我在这里指的是LessFilter https://github.com/kriswallsmith/assetic/blob/master/src/Assetic/Filter/LessFilter.php

线145和146是其中Symfony\Component\Process\Process对象被创建

  $proc = $pb->getProcess();
  $code = $proc->run();
Run Code Online (Sandbox Code Playgroud)

麻烦的是这个输出放在一个文件中.我不知道如何生成第二个源图文件.

如何扩展此过滤器或破解Assetic核心以使其工作?

spe*_*nta 5

是的,这是正确的选择.但是,您不需要破解它.扩展它!

我用这个:

# 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
Run Code Online (Sandbox Code Playgroud)

我在这里发现了这个:https: //github.com/thomaswelton/blog/blob/master/articles/symfony/using-less-source-maps.md

它通过添加两个新的树参数来扩展Filters的filterLoad()方法.所有可用的树参数都可以在这里找到:

https://github.com/less/less.js/blob/master/bin/lessc#L361-L378

你必须喜欢依赖注射:)

  • 如何强制创建`.map`文件(Chrome DevTools中的CSS自动重载所需)而不是内联映射.尝试了`sourceMapOutputFilename`和`sourceMapFilename`没有运气 (2认同)