javascript - 如何使用gulp将bower下载的angular,bootstrap等,放到scripts或styles目录下
巴扎黑
巴扎黑 2017-04-10 17:23:10
[JavaScript讨论组]

我使用gulp在Atom下配置一个项目,通过bower 下载了angular, bootstrap后, 但是不知道如何使用gulp将bower下载的东西引入到项目中,比如说script, style目录下, 求解 最好能把原理说一下。。。。! ^_^

巴扎黑
巴扎黑

全部回复(2)
天蓬老师

项目中并不是用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的库

第二种

开发时就引用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(里面有讲解),希望对你有帮助。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号