2016-07-19 1 views
1

Phoenix/BrunchアプリケーションでFoundation 6 JSプラグインを使用したいと思っていますが、Foundationスクリプトを正しくフックアップする方法がわかりません。 私が理解する限り、それらはjQueryの後に読み込まれ、.foundation()関数で拡張されます。ブランチにFoundation 6 JSを載せるには?

package.json

"dependencies": { 
    "foundation-sites": "^6.2.3", 
    "jquery": "^3.1.0", 
    "sass-brunch": "^2.6.3", 
}, 

ブランチ-config.jsの

exports.config = { 
    files: { 
    javascripts: { 
     joinTo: "js/app.js", 
     order: { 
     before: [ 
      "node_modules/jquery/dist/jquery", 
      "node_modules/foundation-sites/js/foundation.core", 
      "node_modules/foundation-sites/js/foundation.topbar" 
     ] 
     } 
    }, 
    stylesheets: { 
     joinTo: "css/app.css" 
    }, 
    templates: { 
     joinTo: "js/app.js" 
    } 
    }, 

    conventions: { 
    assets: /^(web\/static\/assets)/, 
    ignored: [ 
     /\/_.*/ 
    ] 
    }, 
    paths: { 
    watched: [ 
     "web/static", 
     "test/static" 
    ], 
    public: "priv/static" 
    }, 

    plugins: { 
    babel: { 
     ignore: [/web\/static\/vendor/, /web\/static\/elm/] 
    }, 
    eslint: { 
     pattern: /^web\/static\/js\/.*\.js?$/ 
    }, 
    sass: { 
     mode: 'native', 
     options: { 
     includePaths: [ 
      'node_modules/foundation-sites/scss' 
     ] 
     } 
    } 
    },  

    modules: { 
    autoRequire: { 
     "jquery":   "node_modules/jquery/dist/jquery", 
     "foundation_core": "node_modules/foundation-sites/js/foundation.core", 
     "foundation_topbar": "node_modules/foundation-sites/js/foundation.topbar", 
     "js/app.js":   ["web/static/js/app"] 
    } 
    }, 

    npm: { 
    enabled: true, 
    whitelist: ["phoenix", "phoenix_html", "jquery", "foundation-sites", "scrollreveal"], 
    globals: { 
     $:  'jquery', 
     jQuery: 'jquery', 
    } 
    } 
}; 

ブランチのドキュメントでは、私は(その設定にミスのカップルになるかもしれない非常に明示的ではありませんautoRequirenpm.globalsを使用しようとしたときにマップキーとは何ですか?)しかし、$jQueryのグローバル変数はtですここではjQueryライブラリを指しています。これは問題ありません。

問題は、$(document).foundationが定義されていないことです。

答えて

0

ブランチは、資産をコンパイルしていない節「モジュール」の原因は、あなたは文字列値を使用:

modules: { 
    autoRequire: { 
     "jquery":   "node_modules/jquery/dist/jquery", 
     "foundation_core": "node_modules/foundation-sites/js/foundation.core", 
     "foundation_topbar": "node_modules/foundation-sites/js/foundation.topbar", 
     "js/app.js":   ["web/static/js/app"] 
    } 
}, 

ではなく、あなたがパスを持つ文字列の配列を使用する必要があります。したがって、次のように変更してください:

modules: { 
    autoRequire: { 
     "jquery":   ["node_modules/jquery/dist/jquery"], 
     "foundation_core": ["node_modules/foundation-sites/js/foundation.core"], 
     "foundation_topbar": ["node_modules/foundation-sites/js/foundation.topbar"], 
     "js/app.js":   ["web/static/js/app"] 
    } 
}, 
関連する問題