@faragly

Как подключить модуль с конструктором в Browserify с помощью require?

Здравствуйте! Есть модуль jquery jbox. Он написан как конструктор и вызывается:
new jBox('Tooltip',{id:'jBoxT1',attach:jQuery('selector'),zIndex:8000,content:'This is a basic jBox tooltip'});

или
jQuery('selector').jBox({...})
Интересует первый вариант вызова. Но все рушится при сборке проекта в Gulp, не знаю как правильно прописать require('jbox') чтобы можно было вызывать первым методом.
Использую browserify-shim, в package.json следующий код:
...
"browserify": {
    "transform": [
      "browserify-shim"
    ]
  },
  "browser": {
    "jquery": "./bower_components/jquery/dist/jquery.js",
    "jbox": "./bower_components/jbox/Source/jBox.js"
  },
  "browserify-shim": {
    "jquery": {
      "exports": "$"
    },
    "jbox": {
      "depends": "jquery",
      "exports": null
    },
  }
...

Как правильно подключить плагин через require, чтобы не видеть такую ошибку
Error: jBox is not a constructor?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
AMar4enko
@AMar4enko
Ну у вас "exports": null для jbox прописан, при require("jbox") у вас в качестве значения модуля вернется null, поэтому jBox is not a constructor
Сделайте "exports": "jBox", вызывайте так
var jBox = require('jbox');
new jBox(...)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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