Nous voulons utiliser les plugins Foundation 6 JS dans notre application Phoenix/Brunch, mais je n'arrive pas à comprendre comment raccorder correctement les scripts Foundation. Pour autant que je comprends, ils devraient être chargés après jQuery et l'étendra avec la fonction .foundation()
.Comment charger Foundation 6 JS dans Brunch?
package.json
"dependencies": {
"foundation-sites": "^6.2.3",
"jquery": "^3.1.0",
"sass-brunch": "^2.6.3",
},
brunch-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',
}
}
};
La documentation Brunch n'est pas très explicite je pourrais donc faire quelques erreurs dans cette configuration (quand essayé d'utiliser autoRequire
et npm.globals
- quelles sont les clés de la carte là?), mais néanmoins $
et jQuery
les variables globales sont t ici et en pointant vers la bibliothèque jQuery, ce qui est bien. Le problème est que $(document).foundation
n'est pas défini.