2016-07-27 4 views
0

Ich arbeite an einem Django-Projekt mit Django Pipline, um CSS- und JavaScript-Dateien beim Bereitstellen der statischen Dateien der Anwendung zu verarbeiten. Ich möchte Babel verwenden, um JSX Quelle zu JavaScript in diesem Prozess zu kompilieren. Dazu muss ich ein Pipeline-Plugin schreiben, das babel aufruft und ihm die JSX-Datei übergibt.Vorgesehene Möglichkeit, Befehle als Abhängigkeiten auszuführen

{ 
    "name": "my-project", 
    "version": "1.0.0", 
    "description": "", 
    "dependencies": [ 
     "[email protected]", 
     "[email protected]" 
    ] 
} 

Als ich es alle notwendigen Abhängigkeiten in node_modules wird installieren laufen npm install:

Babel und ihre Abhängigkeiten zu installieren, ich habe eine minimale package.json eingerichtet.

Das alles funktioniert gut, aber es gibt einen Teil, der mir entgeht. Ich habe keinen direkten Weg gefunden, das babel Binary auszuführen. npm installiert die Programme unter node_modules/.bin, die auch von npm bin zurückgegeben:

$ find node_modules -name babel 
node_modules/.bin/babel 
node_modules/babel-cli/lib/babel 

$ npm bin 
[...]/node_modules/.bin 

Was ist der vorgesehene Art und Weise, um dann zum Beispiel Führen Sie die babel binäre?

Sollte ich dieses Verzeichnis auf meinem $PATH setzen? Gibt es ein Skript, das dem Skript activate von virtualenv ähnlich ist? Soll ich stattdessen den Pfad in meinem Projekt fest codieren?

Ich bin sicher, dass die Autoren von npm an diesen Anwendungsfall gedacht haben. Sonst würden Projekte wie Babel in einer Grauzone von beabsichtigten Nutzungen von npm leben.

Antwort

1

Wenn Sie npm Skripts verwenden, werden die Binärdateien in node_modules/.bin zu Ihrem PATH hinzugefügt. So konnten Sie eine erstellen, sagen wir, "build" Skript wie folgt:

{ 
    "name": "my-project", 
    "version": "1.0.0", 
    "description": "", 
    "dependencies": [ 
     "[email protected]", 
     "[email protected]" 
    ], 
    "scripts": { 
     "build": "babel script.js" 
    } 
} 

Und dann tun npm run build das Skript auszuführen.

Verwandte Themen