2016-03-18 13 views
2

Ich versuche, einige jQuery-Plugins mit browserify zu arbeiten. Ich habe meine package.json Setup wie folgt aus:Browserify mit jQuery-Plugins

"browser": { 
    "jquery": "./client/js/vendors/jquery-2.2.2.min.js", 
    "jquery-validation": "./client/js/vendors/jquery.validate.js" 
    }, 
    "browserify-shim": { 
    "jquery": "global:$" 
    }, 

Allerdings, wenn ich require('jquery-validation'), ich lese nicht Eigentum erhalten können fn undefinierter, wie es zu diesem Plugin bezieht. Ich versuche es auch so zu haben, dass $ global ist, da es überall verwendet wird, ohne es zu benötigen.

Ich habe so viele verschiedene Artikel und Konfigurationen dafür gesehen, aber nichts scheint zu funktionieren.

Irgendwelche Vorschläge oder Klarheit würden sehr geschätzt werden.

EDIT:

ich manchmal auch Uncaught Error: Cannot find module 'jquery'

Antwort

0

erhalten Es scheint, wie Sie Tippfehler haben, sollten Sie require('jquery-validation') rufen statt require('jquery-validate')

+0

Sorry, das war ein Tippfehler in meiner Frage. – dzm

1
  1. Sie brauchen nicht jquery zu Shim, es ist conpatible Mit dem Knoten yoo können Sie es einfach mit npm install jquery --save installieren und var $= require("jquery") in Ihrem Code machen.
  2. Sie müssen jquery.validate shim.

package.json:

{ 
    "browser":{ 
     "jquery-validation":"./node_modules/jquery-validation/dist/jquery.validate.js" 
    }, 
    "browserify-shim":{ 
     "jquery-validation":{ 
     "depends":[ 
      "jquery:jQuery" 
     ] 
     } 
    }, 
    "browserify":{ 
     "transform":[ 
     "browserify-shim" 
     ] 
    }, 
    "dependencies":{ 
     "jquery":"^2.0.0", 
     "jquery-validation":"^1.15.1" 
    } 
} 

Hinweis: jquery.validate hängt von jQuery Version 2.0^(Sie in der package.json Datei der Jquery-Validierung der NPM-Pakets sehen), so dass Sie müssen Setzen Sie in Ihrem Projekt die Abhängigkeit von jquery^2.0, andernfalls lädt jquery-validation seine eigene Version von jQuery und die Integration funktioniert nicht.