Irgendwie neu an dieser ganzen SystemJS-Sache, so dass ich die wichtigen Teile in der Dokumentation vollkommen durchschimmern werde. Ich bin ziemlich vertraut mit der Bündelung der Dinge mit Browserify, aber dieses ganze SystemJS hat mich am Kopf kratzen, wenn es um die Bereitstellung geht. Kein Wortspiel beabsichtigt, weil ich sonst SystemJS liebe.Angular2 "Getting Started" mit SystemJS
die aus mit der Konfigurationsdatei folgende Bei gleicher Konfiguration von der Angular2 5 Minuten Schnellstart mit:
<!-- 1. Load libraries -->
<!-- IE required polyfills, in this exact order -->
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script src="app.config.js"></script>
<script>
System.import('app/main')
.then(null, console.error.bind(console));
</script>
und die folgenden von meinem Gulpfile SystemJS Builder:
gulp.task('system-builder', function (cb) {
var builder = new Builder('./production/public/', './production/public/app.config.js');
fs.copy('./client/node_modules', './production/public/node_modules', function(err) {
builder.bundle('./production/public/js/app/app.boot.js', './production/public/js/app/app.js')
.then(function() {
console.log('Build complete');
cb();
})
.catch(function(err) {
console.log('Build error');
console.log(err);
});
});
});
ich jetzt habe eine einzelne app.js-Datei. Zurück zur HTML-Datei Wie verwende ich den Anwendungscode in einem gebündelten Zustand? Weil ich einen angular2-polyfills.js:322 Error: SyntaxError: Unexpected identifier
Fehler bekomme, wenn ich das folgende Update mache. Beachten Sie, dass ich app.config.js mit /js/app/app.js ersetzt haben:
<!-- 1. Load libraries -->
<!-- IE required polyfills, in this exact order -->
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system-polyfills.js"></script>
<script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script src="/js/app/app.js"></script>
<script>
System.import('/js/app/app.boot').then(null, console.error.bind(console));
</script>
Ich habe eine Million und ein Treffer gesehen auf nur JSPM verwenden, aber ich möchte wissen, wie SystemJS diese nativ behandelt bevor Sie Entscheidungen über die Verwendung von mehr Bibliotheken treffen.
Hallo @ Mitchell, nur 2 Fragen zu deinem Code; 1) sollten Sie nicht den Import für app.config.js in Ihrem HTML entfernen und stattdessen app.js verwenden? 2) Haben Sie die Ordner/Dateien in Ihrem Deployment-Ordner bezüglich der importierten node_modules in Ihrem HTML-Code eingeschlossen? oder mit dem Bündel sollte genug sein? – David
Hi @david, Yeah, dieser Beitrag war in den Beta-Tagen und einige Dinge haben sich geändert, jetzt ist es in RC4. Da ich mich in letzter Zeit nicht mehr auffrischen konnte, würde ich mir vorstellen, dass Ihre erste Frage möglicherweise nicht mehr zutrifft. Soweit du deine zweite Frage hast, musst du diese node_module in dein Build-Verzeichnis aufnehmen, aber ich habe sie mit gulp zu einer einzigen libs.j zusammengefasst. – Mitchell