在Windows上使用较少的symfony2

时间:2014-12-03 11:51:13

标签: php node.js symfony less assetic

我试图在Windows操作系统上进行开发时减少资产工作。

我正在加载一个现有的项目,我可以根据需要修改config.yml和parameters.yml文件。

到目前为止的步骤:

  1. 我已经通过msi安装程序安装了Node.js
  2. 我使用了npm并且安装的次数较少
  3. config.yml

    assetic:
          debug:          %kernel.debug%
          use_controller: false
          bundles:        [ FOSUserBundle ]
          filters:
              less:
                  node: "C:\\Program Files (x86)\\nodejs\\node.exe" #/usr/local/bin/node
                  node_paths: [C:\Users\matt\AppData\Roaming\npm\node_modules\less] #[ /usr/local/lib/node_modules ]
                  apply_to: "\.less$"
    

    我已尝试将appdata/roaming/npm/node_modules/less目录直接移至node_modules目录中的本地program files (x86)/nodejs/node_modules目录,但无济于事。

    我也尝试过将roaming/npm/node_modules/less dir添加到环境路径中,没有快乐。

    我尝试将less直接安装到项目中并将node_path直接指向它,没有任何乐趣。

    输出的css文件中的错误如下:

      

    [例外] 500 |内部服务器错误| Assetic \异常\ FilterException异常   [message]运行时发生错误:   " C:\ Program Files(x86)\ nodejs \ node.exe" " C:\用户\马特\应用程序数据\本地\ TEMP \ assEC1E.tmp"

    (这是无益的)

    任何帮助表示感谢,我们都有点陷入办公室。

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但是,由于我发现了同样的问题,我终于解决了,我想发布答案。

在Windows上使用LESS的推荐方法是使用lessphp包。要添加它,您只需在作曲家json中添加以下行:

"require": {
    .....
    "leafo/lessphp": "dev-master",
    .....
}

然后你必须运行

$ php composer.phar update

并使用以下配置更新您的app/config/config.yml

assetic:
    #...
    filters:
        lessphp:
            file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
            apply_to: "\.less$"

完成此操作后,您将能够预处理LESS文件并生成CSS文件。

然后,当您想要使用assetic处理文件时,您只需在视图中包含该过滤器,例如:

{% stylesheets filter='lessphp' output='css/main.css'
    '@AppBundle/Resources/public/less/*'
%}