Frage

Ich habe versucht, Symfony2 unter Windows einzurichten, damit ich Assetic mit weniger Aufwand nutzen kann.

Ich habe node.js für Windows (0.6.8) installiert.Dann bin ich gerannt npm install less --global und weniger gefunden C:\Users\Matt\AppData\Roaming\npm\node_modules

Was mein Symfony-Setup betrifft, habe ich den Master-Zweig von Assetic (aufgrund eines Fehlers, über den ich in 1.0.2 gelesen habe), aber die Standardversion 1.0.1 von AsseticBundle

Nach einiger Arbeit konnte ich eine Datei ohne Beispiel zum Rendern erhalten über: http://localhost/app_dev.php/css/compiled-main_part_1_boilerplate_1.css

Dann habe ich eine .less-Datei ausgetauscht, die andere .less-Dateien (im selben Unterverzeichnis) @importiert.Immer wenn ich versuche, diese Seite auf meinem lokalen Server aufzurufen (mit dieser weniger Konfiguration), bleibt sie hängen und ich sehe, dass sowohl ein Befehlsprozess als auch ein node.exe-Prozess ausgeführt werden.

Der Befehl versucht, ein Skript in node.js auszuführen, das in meinem temporären Verzeichnis vorhanden ist.Ich kann diese Datei problemlos über node.js in einer Eingabeaufforderung ausführen, aber ich kann sie nicht mit Symfony/Assetic laden.

Gibt es überhaupt eine Möglichkeit, node.js, less und assetic unter Windows zu verwenden?

Hier sind meine relevanten Konfigurationsdateiabschnitte:

# 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

Überschreibung der Entwicklerkonfiguration:

assetic:
    use_controller: true

in der Parameter.ini:

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

Lösung 3

Da niemand wirklich Antworten hat, kann ich nur davon ausgehen, dass es nur sehr wenige Windows-Entwickler gibt, die LESS und node.js in Symfony2 verwenden.

Meine Lösung bestand darin, lessphp zu verwenden, was gut funktionierte, sobald ich es in den Autoloader bekam.

Andere Tipps

ja, verwenden wenigerphp (serverseitig)

Symfony2.1.So integrieren Sie den Assetic-Lessphp-Filter.Fügen Sie Folgendes hinzu

Paket zu Ihrer Composer.json:

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

Führen Sie das PHP-Composer.phar-Update aus

und aktualisieren Sie Ihre config.yml

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

oder nutzen Sie die less.js (Client-Seite)

<link rel="stylesheet/less" type="text/css" href="styles.less">
<script src="less.js" type="text/javascript"></script>

Ich habe Folgendes verwendet und das funktioniert bei mir.Beachten Sie, dass es sich um „node.exe“ und nicht nur um „node“ handelt.

node: "C:\\Program Files (x86)\\nodejs\\node.exe"
node_paths: ["C:\\Users\\Ben\AppData\\Roaming\\npm\\node_modules"] 
apply_to:   "\.less$"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top