Krasnodar_etc
@Krasnodar_etc
fundraiseup

Что делает browserify shim?

Ребят, не до конца понимаю. Сначала пример кода:
gulp.task('js-vendors', function() {
  gulp.src('./public/app/vendors/vendors.js')
    .pipe(browserify({
      shim: {
        jquery : {
          path: './public/bower_components/jquery/dist/jquery.min.js',
          exports: '$'
        },
        ko : {
          path: './public/bower_components/knockout/dist/knockout.js',
          exports: 'ko'
        },
        lodash: {
          path: './public/bower_components/lodash/dist/lodash.min.js',
          exports: '_'
        }
      },
      insertGlobals : true,
      debug : false
    }))
    .pipe(gp_uglify())
    .pipe(gulp.dest('./public/build/js'))
});


Вопрос: а что именно делает shim ? И его свойство exports . Смотрю проект ушедшего ныне разраба и не совсем понимаю. Есть файл vendors.js с кучей require() . Причём require-ятся там те же knockout, lodash, которые прописаны в shim. Документацию смотрел, но май инглиш донт хватает фор ит )
Выглядит это всё не сложно. Может кто подскажет простыми словами, что именно происходит?
  • Вопрос задан
  • 465 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Фактически, shim - это костыль для библиотек, которые не реализуют ни один из стандартов js-модулей (AMD, CommonJS) или поддерживают его как-то не так, как нужно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы