如何使用Gulp uglify我的AngularJS 2 Typescript应用程序文件并连接生产版本?
我可以解析js文件,但后来我不知道如何使用它们/连接它。 目前我的代码只是缓存破坏css并将其注入索引文件头。
我在angular 2应用程序中使用了typescript,我注意到当我在chrome中查看我的网站时,我可以看到我所做的所有.ts和.js代码的所有源文件。
我希望将其弄清楚并使其更安全。
我可以在角度1中执行此操作,但在角度2中我不知道如何执行此操作。
提前谢谢。
这是我当前的索引文件:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Pool Cover Dev</title>
<base href="/"></base>
<!-- inject:css -->
<link rel="stylesheet" href="/css/styles.4e04da1a.css">
<!-- endinject -->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-shim.min.js"></script>
<script type="text/javascript" src="/safariPolyFix.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.18.4/system.src.js"></script>
<script>
System.config({
transpiler: 'typescript',
defaultJSExtensions: true,
typescriptOptions: {
emitDecoratorMetadata: true,
},
packages: {
'angular2-google-maps': {
defaultExtension: 'js'
}
}
});
</script>
<script type="text/javascript"src="https://code.angularjs.org/2.0.0-beta.0/angular2-polyfills.js"></script>
<script type="text/javascript"src="https://code.angularjs.org/tools/typescript.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/2.0.0-beta.0/Rx.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/2.0.0-beta.0/angular2.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/2.0.0-beta.0/router.js"></script>
<script type="text/javascript" src="https://code.angularjs.org/2.0.0-beta.0/http.js"></script>
<script type="text/javascript" src="/firebase/firebaseNew.js"></script>
</head>
<body id="container">
<app></app>
<script type="text/javascript">
System.import('/app/app.component.js');
</script>
</body>
</html>
这是我目前的gulp文件:
var gulp = require('gulp');
var sass = require('gulp-sass');
var inject = require('gulp-inject');
var del = require('delete');
var minifyCss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var CacheBuster = require('gulp-cachebust');
var cachebust = new CacheBuster();
//1. Delete styles.css
gulp.task('deleteStyle', function() {
setTimeout(function () {
del.promise(['src/css/styles.*.css'])
.then(function() {
console.log("Deleted original styles.css");
return true;
});
}, 1000);
});
//2. Make new styles.css
gulp.task('addStyles', function() {
setTimeout(function () {
gulp.src('src/sass/styles.scss')
.pipe(sass().on('error', sass.logError))
.pipe(minifyCss({compatibility: 'ie8'}))
.pipe(cachebust.resources())
.pipe(gulp.dest('src/css/'))
}, 3000);
});
//3. Inject new style.css to index.html file
gulp.task('injectStyle', function() {
setTimeout(function () {
var target = gulp.src('src/index.html');
var sources = gulp.src(['src/css/styles.*.css'], {read: false});
return target.pipe(inject(sources))
.pipe(gulp.dest('./src'));
}, 5000);
});
//4. Get all js files into folder js
gulp.task('getAllJsFiles', function() {
setTimeout(function () {
gulp.src('src/app/**/**/*.js')
.pipe(cachebust.resources())
.pipe(gulp.dest('src/app/js/'))
}, 8000);
});
gulp.task('default', ['deleteStyle', 'addStyles', 'injectStyle', 'getAllJsFiles']);
答案 0 :(得分:2)
有一个非常好的示例angular2应用程序可以完全满足您的要求:angular 2 seed。 开始查看运行以下命令时执行的操作:
npm run build.prod
并遵循相应的gulp任务的逻辑,看看它是如何完成的。
希望这有帮助。