2013-10-08 4 views
6

Ich brauche eine Möglichkeit, um die Dateien, die ich brauche aus einer Bower-Komponente zu definieren. In bower.json in der Komponente sind die Dateien, die ich brauche, nicht in der main Einstellung angegeben. Ich würde gerne einen Weg zu Symlink oder kopieren Sie die Dateien in ein anderes Verzeichnis Assets-Verzeichnis von Bower. Ich benutze Grunt und ich habe nichts gefunden, was helfen könnte. Ich würde eine Art lieben, wie ich alle Dateien über json definieren könnte.Symlink oder kopieren Sie Dateien aus Bower-Komponente

Entschuldigung, wenn das nicht ganz stackoverflow würdig ist, aber ich bin wirklich verzweifelt, etwas zu finden, das existiert und das Rad nicht neu erfinden.

Ich fand diesen Code here und ich weiß nicht, wie man es benutzt. Das wäre ideal.

"dependencies": { 
    "font-awesome": ">= 3.2.1" 
}, 
"overrides": { 
    "font-awesome": { 
    "main": [ 
     "css/font-awesome.min.css", 
     "font/FontAwesome.otf", 
     "font/fontawesome-webfont.eot", 
     "font/fontawesome-webfont.svg", 
     "font/fontawesome-webfont.ttf", 
     "font/fontawesome-webfont.woff" 
    ] 
    } 
} 

Antwort

10

Was ich persönlich & empfehlen mit postinstall Anweisungen, um eine .bowerrc Datei in Ihrem Projekt Wurzel zu erstellen Vermögen zu verschieben:

{ 
    "scripts": { 
    "postinstall": "mv ./bower_components/path/to/my.js ./path/to/ideal/location/my.js" 
    } 
} 
+2

+1 - Interessant (außer 'mv' wird wahrscheinlich nicht unter Windows funktionieren.) – deizel

4

Werfen Sie einen Blick auf grunt-bower-task. Die Dokumentation schlägt dies unter fortgeschrittener Verwendung vor:

Zu diesem Zeitpunkt "Bower-Paket" = "seine Git-Repository". Es bedeutet dieses Paket enthält Tests, Lizenzen, usw. Bower's Community aktiv bespricht dieses Problem (GitHub Probleme # 46, # 88, in Google Groups) Das ist Warum Sie solche Tools wie blittle/Bower-Installer, die inspiriert dies finden können Projekt.

Okay, wenn Sie mehr als "main" Dateien in ./lib Verzeichnis möchten setzen dann "exportsOverride" Abschnitt in Ihrem bower.json:

{ 
    "name": "simple-bower", 
    "version": "0.0.0", 
    "dependencies": { 
    "jquery": "~1.8.3", 
    "bootstrap-sass": "*", 
    "requirejs": "*" 
    }, 
    "exportsOverride": { 
    "bootstrap-sass": { 
     "js": "js/*.js", 
     "scss": "lib/*.scss", 
     "img": "img/*.png" 
    }, 
    "requirejs": { 
     "js": "require.js" 
    } 
    } 
} 

Grunzen-Lauben Aufgabe, den Rest tun.

2

Ich habe mit bower-installer mit Erfolg, die von Interesse sein könnte diejenigen, die Grunt nicht benutzen.

Font Awesome benötigt zusätzliches Wrestling, da die CSS-Datei relative Pfade verwendet (z. B. ../fonts/).

{ 
    "dependencies": { 
    ... 
    }, 
    "install": { 
    "path": "webroot/components", 
    "sources": { 
     "font-awesome": { 
     "mapping": [ 
      {"bower_components/font-awesome/css/font-awesome.css": "font-awesome.css"}, 
      {"bower_components/font-awesome/fonts/fontawesome-webfont.eot": "../fonts/fontawesome-webfont.eot"}, 
      {"bower_components/font-awesome/fonts/fontawesome-webfont.svg": "../fonts/fontawesome-webfont.svg"}, 
      {"bower_components/font-awesome/fonts/fontawesome-webfont.ttf": "../fonts/fontawesome-webfont.ttf"}, 
      {"bower_components/font-awesome/fonts/fontawesome-webfont.woff": "../fonts/fontawesome-webfont.woff"}, 
      {"bower_components/font-awesome/fonts/FontAwesome.otf": "../fonts/FontAwesome.otf"} 
     ] 
     } 
    } 
    } 
} 
Verwandte Themen