項目中并不是用gulp來將bower組件引入的, 我不確定我是否正確理解了你的意思, 這里我說兩種用法, 假設bower組件都按默認路徑安裝, 即bower_components
:
直接引用
<script src="/bower_components/angular/angular.js"></script>
<script src="/bower_components/xxx/yyy.js"></script>
<script src="/js/app.js"></script>
使用gulp對引用到的腳本進行壓縮
var gulp = require('gulp'),
watch = require('gulp-watch'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify');
gulp.src([
'bower_components/angular/angular.js',
'bower_components/xxx/yyy.js',
'js/app.js'
])
.pipe(concat())
.pipe(uglify())
.pipe(gulp.dest('./dist'));
推薦的做法是通過讀取html文件找到所有的<script>
標簽, 然后合并壓縮, 再修改html文件中<script>
的文件引用, 可以使用類似through2的庫
開發(fā)時就引用gulp合并壓縮的js文件
<script src="/dist/app.bundle.js"></script>
然后gulp寫一個watch
var gulp = require('gulp'),
watch = require('gulp-watch'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify');
gulp.task('default', function (cb) {
watch('js/app.js', function () {
gulp.src([
'bower_components/angular/angular.js',
'bower_components/xxx/yyy.js',
'js/app.js'
])
.pipe(concat())
.pipe(uglify())
.pipe(gulp.dest('./dist'))
.on('end', cb);
});
});
最后, 我也用webpack, 但是目前也不能完全替代gulp, 但是webpack確實是未來的趨勢, 建議學習一下, 畢竟用來解決你目前的問題就比gulp簡單.
我給你推薦用webpack吧(不是來歪樓的),我自己也弄了一個webpack-babel-react-development-tools(里面有講解),希望對你有幫助。