Ich führe ein bestehendes Aurelia-Projekt, das anscheinend nicht mit Aurelia CLI erstellt wurde.Aurelia und System.js production build
Ich muss eine Produktion Build erstellen, aber bin nicht in der Lage mit der aktuellen Konfiguration. Der Development Build funktioniert einwandfrei, lädt aber wie erwartet viel Code auf den Benutzercomputer herunter.
Nach dem Ausführen gulp prod
(gulpfile unten aufgeführt), erhalte ich zwei JS-Dateien: app-build-{revnumber}.js
und vendor-build-{revnumber}.js
, aber Aurelia versucht weiterhin die main.js
Datei zu laden.
Ich versuchte, die main.js
Gebäude zusammen (kommentierten Code in gulpfile.js
), hatte aber keinen Erfolg - einzigen Anbieter Bündel geladen wird:
Hier sind meine Config-Dateien:
config.js
System.config({
baseURL: "/www",
defaultJSExtensions: true,
transpiler: "babel",
babelOptions: {
"stage": 0,
"optional": [
"runtime",
"optimisation.modules.system"
]
},
paths: {
"*": "src/*",
"github:*": "jspm_packages/github/*",
"npm:*": "jspm_packages/npm/*"
},
map: { /* mappings */ }
});
gulpfile.js
var gulp = require('gulp');
var bundler = require('aurelia-bundler');
var image = image = require('gulp-image');
var replace = require('gulp-replace');
var gulpsync = require('gulp-sync')(gulp);
var config = {
force: true,
baseURL: '.',
configPath: './config.js',
bundles: {
// "dist/main": {
// includes: [
// '[main.js]'
// ],
// options: {
// inject: true,
// minify: false,
// rev: false
// }
// },
"dist/app-build": {
includes: [
'[**/*.js]',
'**/*.html!text',
'**/*.css!text'
],
options: {
inject: true,
minify: true,
rev: true
}
},
"dist/vendor-build": {
includes: [ /* all external modules */ ],
options: {
inject: true,
minify: true,
rev: true
}
}
}
};
gulp.task("bundle", function() {
return bundler.bundle(config)
.then(function() {
gulp.src('config.js')
.pipe(replace('dist/', ''))
.pipe(replace('src', 'dist'))
.pipe(gulp.dest(''));
});
});
gulp.task("unbundle",
function() {
return bundler.unbundle(config)
.then(function() {
gulp.src('config.js')
.pipe(replace('dist', 'src'))
.pipe(gulp.dest(''));
});
});
gulp.task("image-bundle",
function() {
gulp.src('./src/media/*')
.pipe(image())
.pipe(gulp.dest('./dist/media'));
});
gulp.task("files-bundle", function() {
return gulp
.src('./src/style/material.woff2')
.pipe(gulp.dest('./dist/style'));
});
gulp.task('prod', gulpsync.sync(['unbundle', 'bundle', 'image-bundle', 'files-bundle']));
gulp.task('dev', gulpsync.sync(['unbundle']));
index.html
<!DOCTYPE html>
<html>
<head>...</head>
<body aurelia-app="main">
<script src="www/jspm_packages/system.js"></script>
<script src="www/config.js"></script>
<script>
System.import('aurelia-bootstrapper');
</script>
</body>
</html>