javascript - Browserify 捆绑未定义的依赖项

原文 标签 javascript backbone.js browserify browserify-shim

我正在使用 browserifyBackbone项目和匀场owlCarousel
因为它不是 commonJS像模块。 shim转换似乎有效,但在我真正需要的时候无效。

我的 app.js文件看起来像:

var settingsView = require("./settingsView.js");

new settingsView();

和我的settingsView
var app = require("./controllers.js"),
    $ = require("jQuery"),
    Backbone = require("Backbone"),
    owlCarousel = require("owlCarousel");
    Backbone.$ = $;

module.exports = Backbone.View.extend({
   el: ".settings",

   events: {
    "click .carousel-img": "setBackground",
    "click .palette div": "setTextColor"
   },

   options: {
    singleItem: true,
    pagination: false,
    navigation: true,
    mouseDrag: false
   },

   initialize: function () {
     this.initCarousel();
   },

   initCarousel: function () {
     /* This is causing the problem */
      this.owlCarousel = this.$el.find(".carousel").owlCarousel(this.options);
   }
})

我的package.json
"browser": {
    "jquery": "./node_modules/jquery/dist/jquery.js",
    "owlCarousel": "./vendor/owl-carousel/owl-carousel/owl.carousel.js"
   },
   "browserify": {
    "transform": [
      "browserify-shim"
    ]
   },
   "browserify-shim": {
    "jquery": "$",
    "owlCarousel": {
      "depends": ["jquery:$"]
    }
   }

它给我的错误:

Uncaught TypeError: this.$el.find(...).owlCarousel is not a function



在运行时。但是,如果我运行 $("div").owlCarousel在 dom 准备好后的控制台中,它可以工作。

最佳答案

我解决了

var app = require("./controllers.js"),
    $ = require("jQuery"),
    Backbone = require("Backbone"),
    owlCarousel = require("owlCarousel");
    Backbone.$ = $;    
    $.fn.owlCarousel = owlCarousel

关于javascript - Browserify 捆绑未定义的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30053077/

相关文章:

javascript - 需要 js 主干 JS 全局模型

javascript - 如何使用Backgrid.js在单个网格中创建可编辑和不可编辑的行

node.js - 如何检测 browserify 何时运行?

html - 如何在另一个网站内将React应用程序构建为小部件

javascript - 对 Angular 列标题

c# - 这可以改进吗?清理危险的 html 标签

javascript - 更改标签值

javascript - this.$ ('.selector' ) 在 jQuery 中有什么作用?

angularjs - 未捕获的 ReferenceError : require is not defined on karma start karma. conf.js

javascript - 使用jQuery从json更改img src