An import map is a way to manage JavaScript module imports directly in the browser without needing a bundler. It tells the browser where to find JavaScript files by mapping module names to URLs.
Click to reveal answer
beginner
How does Rails 7+ use import maps to load JavaScript?
Rails 7+ uses import maps to load JavaScript modules by defining mappings in a file called importmap.rb. The browser reads these mappings and loads the modules from specified URLs, often from CDNs or local assets.
Click to reveal answer
intermediate
What command do you run to pin a JavaScript package using import maps in Rails 7+?
You run `bin/importmap pin <package-name>` to add a package to your import map. This command updates the importmap.rb file and downloads the package if needed.
Click to reveal answer
intermediate
Why might you choose import maps over bundlers like Webpack in Rails 7+?
Import maps let you avoid complex bundler setups. They simplify JavaScript management by loading modules directly in the browser, which can speed up development and reduce configuration.
Click to reveal answer
beginner
How do you include the import map in your Rails 7+ HTML layout?
You include `<%= javascript_importmap_tags %>` in your application layout. This helper inserts the necessary script tags for the browser to load the import map and modules.
Click to reveal answer
What file in Rails 7+ typically holds the import map configuration?
Aconfig/routes.rb
Bapp/javascript/application.js
Cconfig/importmap.rb
Dapp/assets/stylesheets/application.css
✗ Incorrect
The import map configuration is stored in config/importmap.rb where you pin JavaScript packages.
Which command pins a package to the import map in Rails 7+?
Abin/importmap pin package-name
Bnpm install package-name
Cyarn add package-name
Drails pin package-name
✗ Incorrect
The correct command is bin/importmap pin package-name to add packages to the import map.
What does the helper `<%= javascript_importmap_tags %>` do in Rails 7+?
AIncludes CSS stylesheets
BLoads JavaScript modules using the import map
CDefines routes for JavaScript files
DCompiles JavaScript into one file
✗ Incorrect
This helper inserts script tags that load JavaScript modules based on the import map.
Why might import maps improve development speed in Rails 7+?
AThey avoid the need for a bundler and complex setup
BThey automatically minify CSS
CThey bundle all JavaScript into one file
DThey replace Ruby code with JavaScript
✗ Incorrect
Import maps let you load modules directly in the browser, avoiding bundler setup and speeding development.
Where do import maps load JavaScript modules from?
AFrom Ruby gems
BOnly from npm registry
COnly from local files
DFrom URLs defined in the import map, including CDNs or local assets
✗ Incorrect
Import maps map module names to URLs, which can be local files or CDN links.
Explain how import maps work in Rails 7+ and why they are useful.
Think about how the browser finds JavaScript files without bundling.
You got /4 concepts.
Describe the steps to add a new JavaScript package using import maps in Rails 7+.
Consider the command and how the package becomes available in the app.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using importmap in Rails 7+?
easy
A. To load JavaScript modules without needing a bundler
B. To compile Ruby code into JavaScript
C. To manage database migrations automatically
D. To style HTML elements with CSS
Solution
Step 1: Understand importmap's role in Rails 7+
Import maps allow Rails apps to load JavaScript modules directly in the browser without bundling tools.
Step 2: Compare other options
Options B, C, and D describe unrelated tasks: compiling Ruby, managing migrations, and styling, which are not importmap's purpose.
Final Answer:
To load JavaScript modules without needing a bundler -> Option A
Quick Check:
Import maps = load JS modules without bundler [OK]
Hint: Import maps = JS modules without bundler [OK]
Common Mistakes:
Confusing importmap with asset bundlers
Thinking importmap compiles Ruby code
Mixing importmap with CSS or database tasks
2. Which command correctly registers a JavaScript module named chart.js using importmap in Rails?
easy
A. rails importmap add chart.js
B. bin/importmap pin chart.js
C. rails importmap pin chart.js
D. importmap pin chart.js
Solution
Step 1: Identify the correct command syntax
The correct command to pin a module in Rails 7+ is bin/importmap pin [module].
Step 2: Check other options
Options B, C, and D are incorrect: B uses an incorrect verb add, C uses invalid rails importmap pin, and D misses the bin/ prefix.
4. You run rails importmap pin my_module but your JavaScript module does not load in the browser. What is the most likely mistake?
medium
A. You forgot to add <%= javascript_importmap_tags %> in your layout
B. You used pin instead of add command
C. You need to restart the Rails server after pinning
D. You must compile assets with webpack first
Solution
Step 1: Check how import maps load modules
Pinning registers the module, but javascript_importmap_tags must be in the layout to load scripts.
Step 2: Review other options
You used pin instead of add command is incorrect because pin is the right command. You need to restart the Rails server after pinning is unnecessary; no restart needed. You must compile assets with webpack first is wrong because import maps do not require webpack.
Final Answer:
You forgot to add <%= javascript_importmap_tags %> in your layout -> Option A
Quick Check:
Missing javascript_importmap_tags = no JS load [OK]
Hint: Add javascript_importmap_tags in layout to load modules [OK]
Common Mistakes:
Not including javascript_importmap_tags in views
Confusing pin with add command
Thinking server restart is required
Assuming webpack is needed with import maps
5. You want to use a third-party JavaScript library hosted on a CDN with import maps in Rails 7+. Which is the correct way to pin it in config/importmap.rb?
hard
A. pin 'library', from: 'https://cdn.example.com/library.js'
B. pin 'library', to: '/assets/library.js'
C. pin 'library', to: 'https://cdn.example.com/library.js'
D. pin 'library', url: 'https://cdn.example.com/library.js'
Solution
Step 1: Understand pin syntax for external URLs
To pin a module from a CDN, use pin 'name', to: 'URL' in config/importmap.rb.
Step 2: Check other options
pin 'library', to: '/assets/library.js' uses a local path, not CDN. Options C and D use incorrect keys from and url which are invalid.
Final Answer:
pin 'library', to: 'https://cdn.example.com/library.js' -> Option C
Quick Check:
Pin CDN module = pin 'name', to: 'URL' [OK]
Hint: Use 'to:' with CDN URL when pinning external modules [OK]
Common Mistakes:
Using wrong keys like 'from' or 'url'
Pinning local path instead of CDN URL
Confusing syntax for pinning external scripts
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.