docbrown/docs/frontend/plain-js.md
Daniel Uber 77273267b7
Change file name to remove ERB suffix (#13237)
We moved the initializePage.js file from ERB to pure/plain js in
https://github.com/forem/forem/pull/8030, and the docs are out of sync
with the code.

Fix up the path to this file so it matches the codebase.
2021-04-03 18:50:11 -05:00

44 lines
1.3 KiB
Markdown

---
title: JavaScript and Initializers
---
# JavaScript and Initializers
Forem has two JavaScript codebases.
One is located in the directory `app/assets/javascripts` and contains plain
JavaScript (mostly ES5+) being served using
[Sprockets](https://github.com/rails/sprockets-rails) which packages static
assets.
Webpacker manages the other one,
[which you can read more about in this guide](/frontend/webpacker).
This source code is not transpiled, only packaged and minified, and will be
limited to whatever flavor of JavaScript can run on the 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:
```erb
//= require_tree .
```
One JS file in particular, `app/assets/javascripts/initializePage.js`,
bootstraps the majority of the functionality. You will notice, within this file,
that major sections of the websites are bootstrapped, for example:
```javascript
initializeBaseTracking();
initializeCommentsPage();
initEditorResize();
initLeaveEditorWarning();
initializeArticleReactions();
initNotifications();
initializeSplitTestTracking();
```
All the "initializers" are in `/app/assets/javascripts/initializers`.