I am creating a new theme for Magento 2 to be used inhouse as a basetheme for new projects. I am basing it on "Zurb Foundation for sites" and this boilerplate includes js files what-input.js, jquery.js and foundation.js:
i have created foundation.js as such:
define([
'jquery',
'what-input'
],function($) {
'use strict';
$(function() {
$(document).foundation();
});
});
And what-input.js also has the same setup with define depending on jquery only. Am i doing this the right way? Will magento recognize what-input.js as a js module and load it when foundation.js is loaded? Also, how do i tell magento to load foundation.js?
These files are in theme_folder/web/js next to responsive.js and theme.js which both loads properly as far as i can tell.
EDIT:
Solved the issue i described in the comment by replacing the JS:
"*": {
"Mage2theme/js/foundation": {}
}
With:
{
"*": {
"Mage2theme/js/foundation": {}
}
}
But another problems arose, it does not copy the foundation.js file to pub/stacic theme folder so i get a 404 when trying to load it.
Best Answer
So i solved it:
By changeing
to
It started searching for it in the correct place and made the appropriate symlink in pub/static subfolder. It also seems i need to do the same thing with what-input.js.
Not sure if i am missing something here because i saw some references pointing at
require([])
at http://devdocs.magento.com/guides/v2.0/javascript-dev-guide/javascript/js-resources.html but this will have to do for now anyway.Some things to note:
For adding the tags i used default.xml layout and inserted a phtml template in the content as such:
main.phtml then looks like this:
And my foundation-init.js after being renamed since i also needed to include actual foundation.js finally looks like this:
By adding js/ it properly includes the specified file from themes web/js/ directory. I hope this information will be helpful.