5

我一直在尝试在 Windows 上设置 Symfony2,这样我就可以用更少的资源使用资产。

我已经为 Windows (0.6.8) 安装了 node.js。然后我跑了npm install less --global,发现少了C:\Users\Matt\AppData\Roaming\npm\node_modules

至于我的 Symfony 设置,我有 master 分支Assetic(由于我在 1.0.2 中读到的一个错误),但标准 v1.0.1AsseticBundle

经过一些工作,我能够通过以下方式获得一个更少的文件示例: http://localhost/app_dev.php/css/compiled-main_part_1_boilerplate_1.css

然后我切换了一个 .less 文件,它 @imports 其他 .less 文件(在同一个子目录中)。每当我尝试访问本地服务器上的那个页面时(使用这种较少的配置),它就会挂起,我可以看到一个命令进程和一个 node.exe 进程都在运行。

该命令正在尝试在我的临时目录中存在的 node.js 中运行脚本。我可以在命令提示符下通过 node.js 运行该文件,但我无法使用 Symfony/Assetic 加载它。

无论如何在 Windows 上使用 node.js、less 和资产?

这是我的相关配置文件部分:

# Assetic Configuration
assetic:
    debug:           %kernel.debug%
    use_controller: false
    bundles: [FeedStreamMainBundle]
    # java: /usr/bin/java
    filters:
        cssrewrite: ~
        less:
            node: %assetic_node%
            node_paths: [%assetic_less_path%]
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor.jar"
        yui_css:
            jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
        # closure:
        #     jar: %kernel.root_dir%/java/compiler.jar

开发配置覆盖:

assetic:
    use_controller: true

在参数.ini 中:

assetic_node="C:\\Program Files (x86)\\nodejs\\node"
assetic_less_path="C:\\Users\\Matt\\AppData\\Roaming\\npm\\node_modules"
4

3 回答 3

4

是的,使用lessphp(服务器端)

Symfony2.1。如何集成资产lessphp过滤器。添加以下内容

打包到您的 composer.json:

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

运行 php composer.phar 更新

并更新您的 config.yml

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

或使用less.js(客户端)

<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>
于 2012-10-31T16:47:15.950 回答
3

I used the following and this works for me. NOTE that it is 'node.exe' and not just node.

node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"] 
apply_to:   "\.less$"
于 2013-06-21T12:03:44.037 回答
0

由于没有人真正有任何答案,我只能假设很少有 Windows 开发人员在 Symfony2 中使用 LESS 和 node.js。

我的解决方案是使用lessphp,一旦我将它放入自动加载器,它就可以正常工作。

于 2012-02-15T19:43:18.007 回答