Wie Sie wahrscheinlich bemerkt haben, ist Scotty.js nicht mehr aktiv. Die Arbeit an Scotty.js hat Spaß gemacht, aber AWS hat AWS Amplify inzwischen veröffentlicht und Tools wie Scotty.js werden nicht mehr benötigt. Bitte werfen Sie einen Blick auf die AWS Amplify Console. Es ist ein hervorragendes Tool zum Hosten statischer Websites und Single-Page-Anwendungen.
Stellen Sie statische Websites oder Ordner mit einem einzigen Befehl in AWS S3 bereit
Scotty.js ist auf NPM verfügbar. Installieren Sie es als globale Abhängigkeit, um scotty
-Befehl überall verwenden zu können:
npm install scottyjs --global
Beam mich hoch, Scotty
Um einen statischen Ordner in AWS S3 bereitzustellen, führen Sie Folgendes aus:
Scotty {Optionen}
oder
beam-me-up {Optionen}
--help oder -h – Diese Hilfe ausdrucken
--version oder -v – Gibt die aktuelle Version aus
--noclipboard oder -n – URL nicht in die Zwischenablage kopieren (Standard: false)
--quiet oder -q – Ausgabe beim Ausführen von Befehlen unterdrücken (Standard: false)
--website oder -w – Hochgeladenen Ordner als statische Website festlegen (Standard: false)
--spa – Hochgeladenen Ordner als Einzelseiten-App festlegen (Standard: false)
--source oder -s – Quelle des Ordners, der hochgeladen wird (Standard: aktueller Ordner)
--bucket oder -b – Name des S3-Buckets (Standard: Name des aktuellen Ordners)
--prefix oder -p – Präfix auf dem S3-Bucket (Standard: die Wurzel des Buckets)
--region oder -r – AWS-Region, in die die Dateien hochgeladen werden, Standard: gespeicherte Region, falls vorhanden, oder eine Liste zur Auswahl, wenn sie noch nicht gespeichert ist
--force oder -f – Aktualisieren Sie den Bucket ohne Nachfrage (Standard: false, erzwungener Bereich kann mit -r überschrieben werden)
--update oder -u – Vorhandenen Bucket aktualisieren (Standard: false)
--delete oder -d – Vorhandenen Bucket löschen (Standard: false)
--nocdn oder -c – Cloudfront-Handhabung deaktivieren (Standard: false)
--urlonly oder -o – Nur die resultierende URL, CDN oder S3 entsprechend den Optionen ausgeben (Standard: false)
--expire oder -e – Objekte im Bucket löschen, die älter als n Tage sind (Standard: kein Ablauf)
--profile oder -a – Zu verwendendes AWS-Profil (Standard: 'default')
--empty oder -y – Leeren Sie den Bucket (löschen Sie alle Objekte, bevor Sie Dateien hochladen) (Standard: false)
Vollständiges Tutorial: http://medium.com/@slobodan/single-command-deployment-for-single-page-apps-29941d62ef97
Um CRA-Apps bereitzustellen, führen Sie einfach npm run build
in Ihrem Projektstammordner aus, um eine Build-Version zu erstellen.
Stellen Sie dann die Build-Version mit dem folgenden Befehl bereit:
scotty --spa --source ./build
Oder, wenn Sie den Bucket-Namen angeben möchten, führen Sie Folgendes aus:
scotty --spa --source ./build --bucket some-bucket-name
Mit dem Flag --spa
legt Scotty die erforderlichen Weiterleitungen für Ihre Single-Page-App fest, sodass Ihre App pushState sofort verwenden kann.
Um mehrere Apps in einem einzigen Bucket bereitzustellen, können Sie die Option --prefix
verwenden. Dies ist praktisch, wenn Ihr CI-System auf einem Staging-System mit jedem Zweig als Pfadname bereitgestellt wird. Z.B. Der master
-Zweig sollte zum Bucket-Root ( /
) gehen, sodass Sie das Präfix nicht festlegen. Der Zweig feature/fancy-stuff
sollte zum Bucket-Pfad feature/fancy-stuff
führen, also fügen Sie dies einfach als Präfix hinzu. Hier kommt ein Befehlszeilenbeispiel:
# Stellen Sie Ihren Master-Branch-Build im Bucket Rootscotty --source ./build --bucket some-bucket-name bereit# Stellen Sie Ihren Branch-Build im Branch-Namen auf dem Bucket bereitscotty --source_ ./build --bucket some-bucket-name - -präfix your/branch
Wir verwenden Jasmine für Unit- und Integrationstests. Sofern es keinen zwingenden Grund gibt, etwas anderes zu verwenden, verwenden Sie Jasmine bitte weiterhin für Tests. Die vorhandenen Tests befinden sich im Spec-Ordner. Hier sind einige nützliche Befehlsverknüpfungen:
Führen Sie alle Tests durch:
NPM-Test
Führen Sie nur einige Tests durch:
npm test – filter=präfix
Erhalten Sie detaillierte hierarchische Testnamenberichte:
NPM-Test – vollständig
MIT – siehe LIZENZ