我有我的Angular應用程序,其中我的index.html列出了我所有的服務和控制器JS文件。Angular - 在index.html中合併所有JS文件的最佳做法
例如很多這些行<script src="services/loginService.js"></script>
爲了進入生產我想簡化這個,只是引用一個js文件(這是一個縮小版本)。
有人發現有用的工具是什麼工具?
我在猜測吞嚥?
任何意見,將不勝感激。
謝謝。
我有我的Angular應用程序,其中我的index.html列出了我所有的服務和控制器JS文件。Angular - 在index.html中合併所有JS文件的最佳做法
例如很多這些行<script src="services/loginService.js"></script>
爲了進入生產我想簡化這個,只是引用一個js文件(這是一個縮小版本)。
有人發現有用的工具是什麼工具?
我在猜測吞嚥?
任何意見,將不勝感激。
謝謝。
在咽,可以如下做到這一點:
下面是一個簡單gulpfile我已經建立了本地。您可以使用腳本任務或useref任務。 Useref允許你指定哪些文件應該被縮小。
// Include gulp
var gulp = require('gulp');
// Include Our Plugins
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var gulpIf = require('gulp-if');
var rename = require('gulp-rename');
var babel = require('gulp-babel');
var webserver = require('gulp-webserver');
var connect = require('gulp-connect');
var gulpIgnore = require('gulp-ignore');
var useref = require('gulp-useref');
var minifyCSS = require('gulp-minify-css');
var autoprefixer = require('gulp-autoprefixer');
var rename = require('gulp-rename');
var cssnano = require('gulp-cssnano');
var imagemin = require('gulp-imagemin');
var outputDir = 'dist';
var jsLintIgnore = 'app/js/bootstrap-3.3.6/**/*.js';
// run a local webserver from app directory
gulp.task('webserver', function() {
gulp.src('app')
.pipe(webserver({
livereload: true,
fallback: './src/index.html',
//port: 8000, // Default is 8000
//directoryListing: true,
open: true
}));
});
// Lint Task - checks any JavaScript file in our js/ directory and makes sure there are no errors in our code.
gulp.task('lint', function() {
return gulp.src('app/js/**/*.js')
.pipe(jshint())
//.pipe(gulpIgnore.include(jsLintIgnore))
.pipe(jshint.reporter('default'));
});
gulp.task('useref', function(){
return gulp.src('app/*.html')
.pipe(useref())
// Minifies only if it's a JavaScript file
.pipe(gulpIf('js/**/*.js', uglify()))
.pipe(gulpIf('css/**/*.css', cssnano()))
.pipe(gulp.dest('dist'))
});
// Compile Our Sass - compiles any of our Sass files in our scss/ directory into CSS and saves the compiled CSS file in our dist/css directory.
gulp.task('sass', function() {
return gulp.src('app/scss/**/*.scss')
.pipe(sass())
.pipe(gulp.dest('app/css'));
});
gulp.task('css', function(){
gulp.src('app/css/**/*.css')
.pipe(minifyCSS())
.pipe(rename('style.min.css'))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9'))
.pipe(gulp.dest('dist/css'))
});
gulp.task('images', function(){
return gulp.src('app/images/**/*.+(png|jpg|gif|svg)')
.pipe(imagemin())
.pipe(gulp.dest('dist/images'))
});
// Concatenate & Minify JS - concatenates all JavaScript files in our js/ directory and saves the ouput to our dist/js directory. Then gulp takes
// that concatenated file, minifies it, renames it and saves it to the dist/js directory alongside the concatenated file.
gulp.task('scripts', function() {
return gulp.src('app/js/**/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('dist'))
.pipe(rename('all.min.js'))
.pipe(uglify())
.pipe(gulp.dest('dist/js'));
});
// Watch Files For Changes - run tasks as we make changes to our files.
gulp.task('watch', function() {
gulp.watch('app/js/**/*.js', ['lint', 'scripts']);
gulp.watch('app/scss/**/*.scss', ['sass']);
});
// Default Task - used as a grouped reference to our other tasks. This will be the task that is ran upon entering gulp into the command line without any additional parameters.
gulp.task('default', ['webserver', 'lint', 'sass', 'useref','images', 'watch']);
在你的HTML,你想包你想與以下minifed的js文件:
<!--build:js js/main.min.js -->
<script src="/js/script1.js"></script>
<script src="/js/script2.js"></script>
<script src="/js/script3.js"></script>
<!-- endbuild -->
這將創建一個名爲縮小的文件:JS/main.min.js在DIST文件夾中。正如你所看到的,我對我的css文件也一樣。您可以在標籤包裝他們也瞄準某些或所有的CSS文件:
<!--build:css css/styles.min.css-->
<link rel="stylesheet" href="/css/styles1.css">
<link rel="stylesheet" href="/css/styles2.css">
<link rel="stylesheet" href="/css/styles3.css">
<!--endbuild-->
這一飲而盡文件採用以下目錄結構,但你可以改變它來適應你的環境:
- Root Folder
- /app (development environment)
- /css
- /images
- /js
- /scss
- index.html
- /dist (production version of site here)
- /css
- /images
- /js
- index.html
- /node_modules
- bower.json
- gulpfile.js
- package.json
這裏是一個非常棒的YouTube系列節目。 https://www.youtube.com/watch?v=dwSLFai8ovQ
現在說了所有這些,我更喜歡webpack。雖然它的學習曲線有點陡峭,但Gulp可能是一個開始的好地方。
你可以使用吞嚥或咕嚕聲。 這是taskrunners誰擁有內置的縮小和優化功能 –
吞嚥,咕嚕,webpack都是流行的JavaScript構建工具。 –