2016-06-27 3 views
0

formBuilderの流星ラッパーパッケージを作成しようとしています。jQueryライブラリ用の流星ラッパーパッケージの作成中にエラーが定義されていません

Package.describe({ 
    summary: "jQuery Form Builder by kevinchappell. Repackaged for Meteor.", 
    version: "0.1.0", 
    name: "mycompany:jquery-formbuilder", 
    git: "" 
}); 

Package.onUse(function(api) { 
    api.versionsFrom('[email protected]'); 
    api.use([ 'jquery', 'ecmascript', 'fourseven:scss' ]); 

    api.addFiles([ 

    // Form Builder Files 
    "lib/formBuilder/src/sass/base/_animation.scss", 
    "lib/formBuilder/src/sass/base/_bs.scss", 
    "lib/formBuilder/src/sass/base/_font.scss", 
    "lib/formBuilder/src/sass/base/_mixins.scss", 
    "lib/formBuilder/src/sass/base/_variables.scss", 
    "lib/formBuilder/src/sass/_controls.scss", 
    "lib/formBuilder/src/sass/_kc-toggle.scss", 
    "lib/formBuilder/src/sass/_stage.scss", 
    "lib/formBuilder/src/sass/form-builder.scss", 

    "lib/formBuilder/src/js/htmlentities.js", 
    "lib/formBuilder/src/js/helpers.js", 
    "lib/formBuilder/src/js/events.js", 
    "lib/formBuilder/src/js/kc-toggle.js", 
    "lib/formBuilder/src/js/form-builder.js", 
    "lib/formBuilder/src/js/to-xml.js", 
    "lib/formBuilder/src/js/polyfills.js", 

    // Fonts 
    "lib/formBuilder/src/fonts/fontello/css/animation.css", 
    "lib/formBuilder/src/fonts/fontello/css/form-builder-font.css", 

    // Form Render Files 
    "lib/formBuilder/src/js/form-render.js", 

    "lib/formBuilder/src/sass/form-render.scss" 
    ]); 

    api.addAssets([ 

    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.eot", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.svg", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.ttf", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.woff", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.woff2" 

    ], 'client'); 

}); 

Package.onTest(function(api) { 
    api.use(['tinytest', 'test-helpers'], ['client', 'server']); 
    api.use('jquery', 'client'); 
    api.use('mycompany:jquery-formbuilder'); 
    api.addFiles('mycompany:jquery-formbuilder-tests.js'); 
}); 

しかし、私はエラーを取得しておく:jQuery is not definedライブラリはいくつかの場所でjQueryを使用しようとします。私はそれらのjQueryの参照を$に置き換えようとしました。しかし、まだ私はエラーを取得します$ is not defined

私はもう一度エクスポートステートメントを追加しようとしました api.export('$', 'client')しかし、問題は依然として存在します。

jqueryライブラリをラップする正しい方法は何ですか?

答えて

1

コードに根本的な欠陥があります。 jQueryライブラリはクライアントサイドのコードで使用されるはずで、api.addFiles(...、['client'、 'server'])でこれを指定していないので、コンパイルエラーになります。明示的ではないapi.addFiles(...)は、サーバーとクライアントの両方で実行するファイルを追加し、 "jquery module not defined"で終わります。また、この種のコンパイルエラーを避けるために、スタイリングファイルとjsファイルを別々に追加し、api.addFiles()を明示することを強くお勧めします。次のように私はあなたのコードをリファクタリングします:

Package.onUse(function(api) { 
api.versionsFrom('[email protected]'); 
api.use([ 'jquery', 'ecmascript', 'fourseven:scss' ]); 



api.addFiles([ 
    "lib/formBuilder/src/js/htmlentities.js", 
    "lib/formBuilder/src/js/helpers.js", 
    "lib/formBuilder/src/js/events.js", 
    "lib/formBuilder/src/js/kc-toggle.js", 
    "lib/formBuilder/src/js/form-builder.js", 
    "lib/formBuilder/src/js/to-xml.js", 
    "lib/formBuilder/src/js/polyfills.js" 

    // Form Render Files 
    "lib/formBuilder/src/js/form-render.js" 
], 'client'); 

api.addAssets([ 
    // Form Builder Files 
    "lib/formBuilder/src/sass/base/_animation.scss", 
    "lib/formBuilder/src/sass/base/_bs.scss", 
    "lib/formBuilder/src/sass/base/_font.scss", 
    "lib/formBuilder/src/sass/base/_mixins.scss", 
    "lib/formBuilder/src/sass/base/_variables.scss", 
    "lib/formBuilder/src/sass/_controls.scss", 
    "lib/formBuilder/src/sass/_kc-toggle.scss", 
    "lib/formBuilder/src/sass/_stage.scss", 
    "lib/formBuilder/src/sass/form-builder.scss", 

    // Fonts 
    "lib/formBuilder/src/fonts/fontello/css/animation.css", 
    "lib/formBuilder/src/fonts/fontello/css/form-builder-font.css", 
    "lib/formBuilder/src/sass/form-render.scss" 
], 'server'); 

api.addAssets([ 

    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.eot", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.svg", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.ttf", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.woff", 
    "lib/formBuilder/src/fonts/fontello/font/form-builder-font.woff2" 

], 'client'); 

は必ずapi.addFiles(...)で明示的に指定することを忘れないでください。

関連する問題