Node.js 在Windows上的Symfony 2项目中编译引导程序3

Node.js 在Windows上的Symfony 2项目中编译引导程序3,node.js,twitter-bootstrap,symfony,less,twitter-recess,Node.js,Twitter Bootstrap,Symfony,Less,Twitter Recess,我一直在尝试在Windows上的Symfony 2项目中编译Bootstrap 3。但我不能让它工作。我的主要目标是编译我自己的LESS文件。我称之为“风格少”。在这里,我希望能够使用引导混合,比如“makexscolumn”。所以我需要导入bootstrap.less 以下是我迄今为止所做的: 在我的composer.json中,我添加了引导包: { ... "require": { ... "twitter/bootstrap": "v3.0

我一直在尝试在Windows上的Symfony 2项目中编译Bootstrap 3。但我不能让它工作。我的主要目标是编译我自己的LESS文件。我称之为“风格少”。在这里,我希望能够使用引导混合,比如“makexscolumn”。所以我需要导入bootstrap.less

以下是我迄今为止所做的:

在我的composer.json中,我添加了引导包:

{
    ... 
    "require": {
        ...
        "twitter/bootstrap": "v3.0.3"
    },
    ....
}
因为我想使用bootstrap3,所以我不能使用lesshp过滤器,所以我使用less过滤器。为此,我必须先安装nodejs,然后安装less(通过运行命令“
npm install less-g
”)。最后,我修改了config.yml,如下所示:

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ JoePersonalWebSiteBundle ]
    filters:
        cssrewrite: ~
        less:
            node: "C:\\dev\\nodejs\\lessc.cmd"
            node_paths: 
                - "C:\\dev\\nodejs\\node_modules"
            apply_to: "\.less$"
现在,在我的layout.html.twig中,我添加了以下内容:

{% stylesheets filter='less' '@JoePersonalWebSiteBundle/Resources/less/styles.less' %}
    <link rel="stylesheet" type="text/css" href="{{ asset_url }}">
{% endstylesheets %}    
但我总是会出错。事实上,即使我的“styles.less”文件完全为空,我也总是会遇到如下错误:

[exception] 500 | Internal Server Error | Assetic\Exception\FilterException
[message] An error occurred while running:
&quot;C:\dev\nodejs\lessc.cmd&quot; &quot;C:\Users\joe\AppData\Local\Temp\assDE7E.tmp&quot;

Error Output:
[31mParseError: missing opening `{`[39m[31m in [39mC:\Users\joe\AppData\Local\Temp\assDE7E.tmp[90m on line 17, column 1:[39m
[90m16 });[39m
17 [0m[0m


[1] Assetic\Exception\FilterException: An error occurred while running:
&quot;C:\dev\nodejs\lessc.cmd&quot; &quot;C:\Users\joe\AppData\Local\Temp\assDE7E.tmp&quot;

Error Output:
[31mParseError: missing opening `{`[39m[31m in [39mC:\Users\joe\AppData\Local\Temp\assDE7E.tmp[90m on line 17, column 1:[39m
[90m16 });[39m
17 [0m[0m
我尝试创建自己的休息室过滤器来使用它,而不是更少(基于boteeka的工作)。但这也不起作用。更少的文件从不编译。即使是一个空的,或是一个简单的


有人能给我指一下正确的方向吗?在Windows上,是否可以在Symfony 2项目中编译Bootstrap 3?如果是这样,有人能告诉我应该遵循的具体步骤吗?

我在windows中使用LESSHP3.0.0引导程序。最初的想法来自

我还为字体、图标添加了条目

mycomposer.json

"require": {
    "components/jquery": "dev-master",
    "leafo/lessphp": "v0.4.0",
    "twbs/bootstrap": "v3.0.0",
},
对于config.yml,将“cssembed”和“yuicompressor”复制到“%kernel.root\u dir%/Resources” /爪哇/

My config.yml

    # Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [ ]
    java: C:\Program Files\Java\jre7\bin\java.exe
    filters:
        cssrewrite: ~
        cssembed:
            jar: %kernel.root_dir%/Resources/java/cssembed-0.4.5.jar
        yui_js:
            jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
        lessphp:
            file: %kernel.root_dir%/../vendor/leafo/lessphp/lessc.inc.php
            apply_to: "\.less$"
    assets:
        jquery_js:
            inputs:
                - "%kernel.root_dir%/../components/jquery/jquery.min.js"
            filters: [?yui_js]
        bootstrap_js:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/transition.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/alert.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/modal.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/dropdown.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/scrollspy.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/tab.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/tooltip.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/popover.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/button.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/collapse.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/carousel.js"
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/js/affix.js"
            filters: [?yui_js]
        bootstrap_less:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/less/bootstrap.less"
            filters: [lessphp, cssembed]
        fonts_glyphicons_eot:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/fonts/glyphicons-halflings-regular.eot"
            output: "fonts/glyphicons-halflings-regular.eot"
        fonts_glyphicons_svg:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/fonts/glyphicons-halflings-regular.svg"
            output: "fonts/glyphicons-halflings-regular.svg"
        fonts_glyphicons_ttf:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/fonts/glyphicons-halflings-regular.ttf"
            output: "fonts/glyphicons-halflings-regular.ttf"
        fonts_glyphicons_woff:
            inputs:
                - "%kernel.root_dir%/../vendor/twbs/bootstrap/fonts/glyphicons-halflings-regular.woff"
            output: "fonts/glyphicons-halflings-regular.woff"
这里是我的base.html.twig

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>

        {% block stylesheets %}

            {% stylesheets '@bootstrap_less' combine=true %}
                <link href="{{ asset_url }}" type="text/css" rel="stylesheet">
            {% endstylesheets %}

        {% endblock %}

        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}

        {% block javascripts %}

            {% javascripts '@jquery_js' '@bootstrap_js' filter='?yui_js' combine=true %}
                <script src="{{ asset_url }}"></script>
            {% endjavascripts %}

        {% endblock %}
    </body>
</html>

{%block title%}欢迎光临!{%endblock%}
{%块样式表%}
{%stylesheets'@bootstrap_less'combine=true%}
{%endstylesheets%}
{%endblock%}
{%block body%}{%endblock%}
{%block javascripts%}
{%javascripts'@jquery\u js'@bootstrap\u js'filter='?yui\u js'combine=true%}
{%endjavascripts%}
{%endblock%}

不知何故,cssembed不必要或功能不正常,可以使用此解决方案删除

windows上的LESSHP有什么问题?Lesspp在windows上的Bootstrap 3.0.0中对我很有效。@stwe:我在Lesspp中有错误。我不记得确切的错误,但在Twitter Bootstrap的网站上,在“入门”页面的顶部,它说“为了把更少的文件编译成CSS,我们只正式支持休会”。这就是为什么我尝试下载休会并创建自己的休会过滤器。你能编译“bootstrap.less”吗?你能像我想做的那样导入它吗?LessHP和Bootstrap>3.0.3有一个问题,所以我仍然使用3.0.0版本的Hanks来创建这个链接,这很好。我建议使用Grunt之类的工具来监视文件,并在更新时编译它们,而不是将其烘焙到你的应用程序中。您的生产环境编译量会减少吗?谢谢@stwe,我接受这个答案。我刚刚在样式表块中切换到“lesshp”,在composer中切换到bootstrap 3.0.0,它成功了。它不适用于bootstrap 3.0.1及更高版本。只有3.0.0版本。再次感谢+1由于windows的java路径正确,我一直在努力解决这个问题。谢谢
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>

        {% block stylesheets %}

            {% stylesheets '@bootstrap_less' combine=true %}
                <link href="{{ asset_url }}" type="text/css" rel="stylesheet">
            {% endstylesheets %}

        {% endblock %}

        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
    </head>
    <body>
        {% block body %}{% endblock %}

        {% block javascripts %}

            {% javascripts '@jquery_js' '@bootstrap_js' filter='?yui_js' combine=true %}
                <script src="{{ asset_url }}"></script>
            {% endjavascripts %}

        {% endblock %}
    </body>
</html>