hotwired / stimulus

A modest JavaScript framework for the HTML you already have

Home Page:https://stimulus.hotwired.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Using generator causes duplicative references in `app/javascript/controllers/index.js`

jasonfb opened this issue · comments

Here I went to make a new stimulus controller with

bin/rails generate stimulus CancelSubscription

the generator did this, added it to the app/javascript/controllers/index.js but then also added duplicative references to two other stimulus controllers that were already in my app:
stimulus generator – index js 2023-10-31 10-56-32

(If you look carefully at the left margin, you see where my IDE has highlighted the newly added code import CheckoutController... and import OnboardingStartController ... below two lines of identical code.)

interestingly, it has not done the same for a 3rd controller listed in this file, don't know why.

is this a known issue?

I'm on Stimulus-rails 1.2.1

This is a stimulus-rails issue would you mind opening this issue on that repo.
can reproduce this with a blank app?
Thanks

Is this reproducable? @jasonfb

Let me work on that. It's happened for me pretty much every time I run the stimulus generator (as far as I can remember, it's always happened to me as long as I can remember)

FWIW, I build apps using JSBundling, maybe that has something to do with it.

I will create a reproduction app now to see if I can reproduce it

@jasonfb is it possible you have _controller.ts and _controller.js in the same /controllers/ folder?

I was able to reproduce in a test environment with hello_controller.js and hello_controller.ts

// This file is auto-generated by ./bin/rails stimulus:manifest:update
// Run that command whenever you add a new controller or create them with
// ./bin/rails generate stimulus controllerName

import { application } from "./application"

import CoffeeController from "./coffee_controller"
application.register("coffee", CoffeeController)

import HelloController from "./hello_controller"
application.register("hello", HelloController)

import HelloController from "./hello_controller"
application.register("hello", HelloController)

import TypeScriptController from "./type_script_controller"
application.register("type-script", TypeScriptController)

@jasonfb I've created a PR to fix this issue: hotwired/stimulus-rails#132

Closing this here as it is related to the stimulus-rails gem

PR candidate : hotwired/stimulus-rails#132