"Packs" is a special directory made only for webpack entry files so don't put anything here that you don't want to link in your views.
You can put your app source under app/javascript
folder or whatever you have configured
in config/webpacker.yml
.
Let's say you're building a calendar app. Your JS app structure could look like this:
// app/javascript/packs/calendar.js
import 'calendar'
app/javascript/calendar/index.js // gets loaded by import 'calendar'
app/javascript/calendar/components/grid.jsx
app/javascript/calendar/styles/grid.sass
app/javascript/calendar/models/month.js
<%# app/views/layouts/application.html.erb %>
<%= javascript_pack_tag 'calendar' %>
<%= stylesheet_pack_tag 'calendar' %>
But it could also look a million other ways.
You can also namespace your packs using directories similar to a Rails app.
app/javascript/packs/admin/orders.js
app/javascript/packs/shop/orders.js
and reference them in your views like this:
<%# app/views/admin/orders/index.html.erb %>
<%= javascript_pack_tag 'admin/orders' %>
and
<%# app/views/shop/orders/index.html.erb %>
<%= javascript_pack_tag 'shop/orders' %>