Ich arbeite an einer Reihe von Projekten, die auf GitHub sitzen und ich möchte die Gulp-Build-Pipeline zwischen diesen teilen. Alles nutzt Babel, einschließlich der Schluckaufgaben selbst. Die gemeinsame Gulpfile möchte ich teilen erfordert Babel und dann die Aufgaben alle in einem Ordner sitzen - die gemeinsame Datei wie folgt aussieht:Wiederverwenden von Gulp-Aufgaben zwischen Projekten
require("babel-core/register");
require("require-dir")("gulp/tasks");
ich dann versucht, die gemeinsame Pipeline in ein NPM Paket zu verpacken und es als ein hinzufügen devDependency zu dem anderen Projekt. Dann ist mein gulpfile für das Projekt über die gemeinsame Einrichtung abhängig sieht wie folgt aus:
require("./node_modules/cratis.client.javascript.setup/gulpfile");
Wenn ich laufe dies scheint Babel zu laden und dann meine Aufgaben startet das Laden, doch irgendwie immediataly mit:
(function (exports, require, module, __filename, __dirname) { import gulp from "gulp";
^^^^^^
SyntaxError: Unexpected token import
at Object.exports.runInThisContext (vm.js:53:16)
Was bedeuten würde, dass Babel nicht geladen hat, was ich komisch finde - da würde ich dann erwarten, einen Ladefehler bezüglich der ersten zu sehen.
Konnte wirklich nichts über das, was hier vorging, herausfinden, also entschied ich mich, einen anderen Weg zu versuchen; Git Untermodule. Ich habe das allgemeine Pipeline-Projekt als Git-Untermodul zum Projekt hinzugefügt und die Gulp-Datei relativ zum Speicherort des Untermoduls eingefügt. Das scheint überhaupt nicht zu funktionieren - im Grunde genommen keine Dateien zu finden.
Was machen andere? Ich habe wirklich keine guten Beispiele gefunden.
Wenn der Git-Untermodul-Pfad der richtige Weg ist, würde ich gerne sehen, dass "node_modules" auch geteilt werden und eine einfache Möglichkeit, es zu pflegen.
Ausgezeichneter Fang - das bringt uns einen Schritt näher. Ich gehe davon aus, dass Sie den von mir begonnenen Git-Submodul-Ansatz ausprobiert haben. Ich dachte, ich hätte diese Änderung eingecheckt, aber tatsächlich hatte ich das Paket mit dieser Änderung nur nach NPM gebracht. Danke, dass du das gesehen hast. Es ist nicht in der Lage, die Aufgaben zu finden - und es gibt eine gute Erklärung. Es gibt jetzt zwei Sets von node_modules Repositories und es lädt 2 verschiedene Schlucke :) Ich habe console.log() in index.js von beiden eingefügt und es zeigt, dass beide geladen werden. So spuckt es aus "Task-Standard ist nicht in Ihrem gulpfile. Jetzt brauche ich nur ein Elternknoten-Modul für sie beide. Experimentieren. – EinarI
Mit einigen herum bewegen - es funktioniert jetzt, und ich habe die Struktur, die ich in erster Linie als wollte Belohnung: Im Prinzip wurde der src-Ordner entfernt. Ich habe ein Projekt pro Repository-Richtlinie für meine Entwicklung und brauche es nicht - außerdem hatte ich bereits Source und Spezifikationen als Ordner. Und jetzt habe ich einen Modul-Ordner für Halten Git Untermodule Dies wird die node_modules an der Spitze der Hierarchie wiederverwenden, da Knoten rekursiv für Pakete aussieht. Ich werde Ihre Antwort als die Lösung markieren, da Sie mich auf den richtigen Weg geführt! Wirklich zu schätzen, vielen Dank! – EinarI
Ich bin froh, dass du alles aussortiert hast. – andreasonny83