2014-09-12 68 views
1

我正在从事的项目包括Backbone和browserify。 我只使用jQuery和一些JavaScript。骨干jquery插件+ browserify

这是第一个与Backbone和browserify framworks合作的项目。 问题是每当试图使用jquery插件的东西不工作。

我使用jquery插件的原因对我来说是可以理解的。

在的package.json

"browser": { 
    "jquery": "./node_modules/jquery/dist/jquery.min.js", 
    "bootstrap": "./src/javascript/vendor/bootstrap.min.js", 
    "masonry": "./src/javascript/vendor/masonry.pkgd.min.js", 
    "removeClassPrefix": "./src/javascript/vendor/jquery-removeClassPrefix.js", 
    "jquery-validate": "./src/javascript/vendor/jquery.validate.min.js" 
    }, 
    "browserify": { 
    "transform": [ 
     "browserify-shim", 
     "coffeeify", 
     "hbsfy" 
    ] 
    }, 
    "browserify-shim": { 
    "jquery": "$", 
    "bootstrap": { 
     "exports": "bootstrap", 
     "depends": [ 
     "jquery:$" 
     ] 
    }, 
    "masonry": { 
     "exports": "masonry", 
     "depends": [ 
     "jquery" 
     ] 
    }, 
    "removeClassPrefix": { 
     "exports": "removeClassPrefix", 
     "depends": [ 
     "jquery:$" 
     ] 
    }, 
    "jquery-validate": { 
     "exports": "jquery-validate", 
     "depends": [ 
     "jquery:$" 
     ] 
    } 
    }, 

和实际代码写入的CoffeeScript

_   = require 'underscore' 
Backbone = require 'backbone' 
$ = require 'jquery' 
Backbone.$ = $ 
Backbone.Marionette = require 'backbone.marionette' 
ModalModel = require '../models/modalModel' 
jquery-validate = require 'jquery-validate' 

module.exports = Backbone.Marionette.ItemView.extend 

建筑规范之后,在上面的代码中的第一行发生了错误。

Uncaught ReferenceError: jquery is not defined 

没有代码下面的一切工作正常。

jquery-validate = require 'jquery-validate' 

这意味着有相当的东西不是在jQuery插件(jQuery的验证) jQuery的验证是花费的jQuery功能我想工作。

有什么办法可以解决这个问题吗?

回答

0

不能在有效的JavaScript变量标识符中使用破折号,因此请尝试将jquery-validate = require 'jquery-validate'更改为jquery_validate = require 'jquery-validate'

+0

哦,非常感谢你,adamyonk。 我想我已经开始习惯Javascript了。 – LeiHa 2014-12-19 22:55:56

+0

很高兴帮助!这绝对是一个具有挑战性的,但一个非常有用的工具。留下来! – adamyonk 2014-12-20 14:31:40