2015-07-16 3 views
0

У меня возникла проблема, когда я строю свой проект, используя gulp, который запускает задачу браузера (с debowerify) в моих внешних библиотеках, которые я загрузил с помощью bower. Одна из библиотек - angular-gridster - была обновлена, чтобы использовать шаблон UMD, и теперь он бросает ошибку, где ссылка на угловое является пустым объектом.require() возвращающий пустой объект с gulp angular browserify

Это, как начинается углового gridster.js файла:

(function(root, factory) { 

    'use strict'; 

    if (typeof define === 'function' && define.amd) { 
     // AMD 
     define(['angular'], factory); 
    } else if (typeof exports === 'object') { 
     // CommonJS 
     module.exports = factory(require('angular')); 
    } else { 
     // Browser, nothing "exported". Only registered as a module with angular. 
     factory(root.angular); 
    } 
}(this, function(angular) { 

'use strict'; 

// This is throwing my error 
return angular.module('gridster', []) 

и где он пытается вызвать angular.module() он бросает ошибку 'angular.module не является функцией. При отладке я вижу, что угловой - это просто пустой объект и не был загружен правильно. Я не уверен, если это проблема с методом требуется() или проглатывать или browserify или debowerify ...

Вот мой глоток задача

gulp.task('dependencies', function() { 
gulp.src(paths.dependencies) 
    .pipe(browserify({ 
     insertGlobals: true, 
     debug: true, 
     transform: ['debowerify'] 
    }).on('error', gutil.log)) 
    .pipe(concat('3rdparty.js')) 
    .pipe(gulp.dest('www/js')); 

});

Любые идеи? Благодаря!

+0

Вы пытались переместить свою библиотеку в node_modules и попытаться потребовать() это? У меня было много проблем с использованием браузера с помощью debowerify, потому что зависимости библиотек bower рассматривались только в bower lib, а bower не имеет дерева, такого как node_modules. Он может выглядеть в неправильных папках не в том месте. Вы также должны обеспечить использование структур каталогов для каждой библиотеки, которую вы пытаетесь импортировать, и package.json – BigDong

+0

К сожалению, у меня есть много других компонентов, установленных через беседку, которые зависят от углового, поэтому, если я попытаюсь переместить его на модули узлов, я получаю много ошибок –

ответ

0

Мне удалось решить это решение, которое было просто для вызова функции require(), а затем передать глобальную переменную now в глобальном виде по методу factory().

if (typeof define === 'function' && define.amd) { 
    // AMD 
    define(['angular'], factory); 
} else if (typeof exports === 'object') { 
    // CommonJS 
    require('angular'); 
    module.exports = factory(angular); 
} else { 
    // Browser, nothing "exported". Only registered as a module with angular. 
    factory(root.angular); 
} 
Смежные вопросы