In migrating a legacy rails application to Rails 6
3 javascript libraries are used only on two pages and given the size of one, the goal is to call them only on those pages.
yarn add grapheme-splitter
ran properly, but the other two libraries are not listed through yarn. Thus application.js contains:
require("grapheme-splitter")
import("../src/segments_calculator")
import("../src/segments_viewer")
However when invoking these scripts
<%= javascript_pack_tag 'grapheme_splitter' %>
[...]
<%= javascript_pack_tag 'segments_calculator' %>
Webpacker can't find grapheme_splitter in /Volumes/sjt/r/fidel/public/packs/manifest.json. Possible causes: [...]
Webpacker can't find segments_calculator in /Volumes/sjt/r/fidel/public/packs/manifest.json. Possible causes: [...]
Of all the initial causes, webpacker is configured to compile (& I've seen it do so) and There is no indication this file was ever modified (same creation and modification date)
development:
<<: *default
compile: true
Why would the fourth explanation then be valid your webpack configuration is not creating a manifest.? I do see it is missing form the manifest, but so are other libraries that are used only on specific pages (and running).
How can one get pages running where only the specific javascripts are to be loaded, both yarn-managed and not) ?
update
{
"application.js": "/packs/js/application-3eebddca0d1bd59ab625.js",
"application.js.map": "/packs/js/application-3eebddca0d1bd59ab625.js.map",
"entrypoints": {
"application": {
"js": [
"/packs/js/application-3eebddca0d1bd59ab625.js"
],
"js.map": [
"/packs/js/application-3eebddca0d1bd59ab625.js.map"
]
},
"foundation-datepicker": {
"js": [
"/packs/js/foundation-datepicker-a70417b8f24614757c48.js"
],
"js.map": [
"/packs/js/foundation-datepicker-a70417b8f24614757c48.js.map"
]
},
"municipals": {
"js": [
"/packs/js/municipals-ba2af3f728fdf4b1104e.js"
],
"js.map": [
"/packs/js/municipals-ba2af3f728fdf4b1104e.js.map"
]
},
"what-input": {
"js": [
"/packs/js/what-input-f10be0b1923799dfc64d.js"
],
"js.map": [
"/packs/js/what-input-f10be0b1923799dfc64d.js.map"
]
}
},
"foundation-datepicker.js": "/packs/js/foundation-datepicker-a70417b8f24614757c48.js",
"foundation-datepicker.js.map": "/packs/js/foundation-datepicker-a70417b8f24614757c48.js.map",
"municipals.js": "/packs/js/municipals-ba2af3f728fdf4b1104e.js",
"municipals.js.map": "/packs/js/municipals-ba2af3f728fdf4b1104e.js.map",
"what-input.js": "/packs/js/what-input-f10be0b1923799dfc64d.js",
"what-input.js.map": "/packs/js/what-input-f10be0b1923799dfc64d.js.map"
}