Это решение, которое я в конечном итоге придумал gulp
:
Я набрал npm install --save-dev
для пакетов gulp
, gulp-inline
и del
.
После создания gulpfile.js
в каталоге root я написал следующий код:
let gulp = require('gulp');
let inline = require('gulp-inline');
let del = require('del');
gulp.task('inline', function (done) {
gulp.src('dist/index.html')
.pipe(inline({
base: 'dist/',
disabledTypes: 'css, svg, img'
}))
.pipe(gulp.dest('dist/').on('finish', function(){
done()
}));
});
gulp.task('clean', function (done) {
del(['dist/*.js'])
done()
});
gulp.task('bundle-for-local', gulp.series('inline', 'clean'))
Задача inline
заменит все <script src="..."></script>
соответствующим содержимым файла. clean
удалит все файлы .js
.
Наконец, я обновил свой package.json
новым сценарием сборки:
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"build-for-local": "ng build --prod --aot && gulp bundle-for-local",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
Теперь npm run build-for-local
будет выполнять работу.