docbrown/docs/frontend/plain-js.md
rhymes 9210f6793b Improvements on dev docs (#2616)
* Correct installation documentation

* Add stylized titles

* Add some changes to the getting started documentation

* Add changes for the backend guide

* Add changes for the design guide

* Add testing / Q&A guide improvements

* Minor fixes to contributing docs

* More improvements to the general doc

* Improvements for frontend guide
2019-04-29 18:54:29 -04:00

1.3 KiB

title
Javascript and Initializers

Javascript and Initializers

DEV has two Javascript codebases.

One is located in the directory app/assets/javascripts and contains plain Javascript (mostly ES5+) being served using Sprockets which packages static assets.

The other one is managed by Webpacker and you can read more about in its own guide.

This source code is not transpiled, only packaged and minified, and will be limited to whatever flavour of Javascript can run on user's web browser.

app/assets/javascripts/application.js contains the manifest Javascript file which is included globally in the primary template, app/views/layouts/application.html.erb.

application.js automatically includes all JS files via the statement:

//= require_tree .

One JS file in particular, app/assets/javascripts/initializePage.js.erb, boostraps the majority of the functionality. You will notice, within this file, that major sections of the websites are bootstrapped, for example:

initializeBaseTracking();
initializeTouchDevice();
initializeCommentsPage();
initEditorResize();
initLeaveEditorWarning();
initializeArticleReactions();
initNotifications();
initializeSplitTestTracking();

All the "initializers" are in /app/assets/javascripts/initializers.