首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bower + gulp:主文件无法抓取主干和下划线-amd?

bower + gulp:主文件无法抓取主干和下划线-amd?
EN

Stack Overflow用户
提问于 2014-10-22 19:22:16
回答 1查看 2.5K关注 0票数 1

main-bower-files没能抓住backbone-amdunderscore-amd,有什么想法吗?我怎么才能修复它?

gulpfile.js

代码语言:javascript
复制
var mainBowerFiles = require('main-bower-files');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
var filter = require('gulp-filter');

gulp.task('js', function() {
    var jsFiles = ['app/scripts/*'];
    gulp.src(mainBowerFiles().concat(jsFiles))
        .pipe(filter('*.js'))
        .pipe(concat('main.js'))
        .pipe(uglify())
        .pipe(gulp.dest(dest + 'js'));
 });

bower.json,

代码语言:javascript
复制
{
  "name": "requirejs",
  "version": "1.0.0",
  "dependencies": {
    "requirejs": "latest",
    "jquery": "latest",
    "backbone-amd": "latest",
    "underscore-amd": "latest",
    "ember": "latest",
    "ember-data": "latest"
  },
  "authors": [
    "xxx"
  ],
  "license": "MIT",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "app/scripts/vendor",
    "test",
    "tests"
  ]
}

main.js,

代码语言:javascript
复制
require.config({
  paths: {
    'jquery': 'vendor/jquery/dist/jquery',
    'underscore': 'vendor/underscore-amd/underscore',
    'backbone': 'vendor/backbone-amd/backbone',
  }
});

require(['views/app'], function(AppView) {
  new AppView;
  console.log($(".div").length);
});

它只能压缩jqueryemberember-data into one main.js file接受 backbone-amdunderscore-amd

我用其他方法测试过,

代码语言:javascript
复制
gulp.task('bower', function() {
  return gulp.src(mainBowerFiles(), {
      base: 'app/scripts/vendor/'
    })
    .pipe(gulp.dest('public/lib'));
});

或,

代码语言:javascript
复制
// grab libraries files from bower_components, minify and push in /public
gulp.task('libs', function() {

    var jsFilter = filter('*.js');

    return gulp.src(mainBowerFiles())

    // grab vendor js files from bower_components, minify and push in /public
    .pipe(jsFilter)
    .pipe(gulp.dest(dest + '/js/vendor'))
    .pipe(uglify())
    .pipe(rename({
        suffix: ".min"
    }))
    .pipe(gulp.dest(dest + '/js/vendor'))
    .pipe(jsFilter.restore());
});

同样的结果--它忽略了backbone-amdunderscore-amd。它是bugmain-bower-files中吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-22 19:48:28

不是虫子。backbone-amdunderscore-amd没有bower.json,因此没有能够指定主文件的main属性。这是安博的bower.json作比较。

“这将读取您的bower.json,迭代您的依赖项,并返回在包bower.json的主属性中定义的文件数组。”

https://github.com/ck86/main-bower-files#usage

您可以将overrides属性添加到 bower.json中,以便自己指定正确的文件:

代码语言:javascript
复制
"overrides": {
    "backbone-amd": {
      "main": "backbone.js"
    },
    "underscore-amd": {
      "main": "underscore.js"
    }
}

https://github.com/ck86/main-bower-files#overrides-options

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26515429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档