iscareal
@iscareal
Front-End Developer

Почему «this» undefined в underscore после компиляции после компиляции browserify c использованием debowerify?

Всем привет)

Есть gulp таск
gulp.task('js', function() {
    browserify('./src/js/main.js')
        .bundle()
        .on('error', onError)
        .pipe( source('main.js') )
        .pipe( gulp.dest(path.build.js) );
});


и такой package.json:
{
  "browserify": {
    "transform": [
      ["babelify", { "presets": ["es2015"] }],
      "debowerify"
    ]
  },
}


В main.js я импортирую backbone (или underscore отдельно, это не важно):
import Backbone from 'backbone';

И после компиляции в консоли получается след. ошибка:
Uncaught TypeError: Cannot read property '_' of undefined


Проверил через Chrome DevTools. Переменная root получается undefined в начале библиотеке underscore:
// Establish the root object, `window` in the browser, or `exports` on the server.
  var root = this;

  // Save the previous value of the `_` variable.
  var previousUnderscore = root._;


Самое интересное, что если компилировать без debowerify используя npm вместо bower, то все работает. Но я хочу использовать bower.

Может кто нибудь настраивал такое и знает тонкости?

Заранее спасибо :)
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы