• marlowe221@lemmy.world
    link
    fedilink
    English
    arrow-up
    54
    ·
    19 hours ago

    This happens all the time with TypeScript. The transpiled JS that actually runs will naturally have different line numbers than the TS you wrote!

    To be fair, the reported line number is usually close enough that I can find the issue without much trouble.

    It’s not my favorite back end language, but it’s what everyone on my team knows…

    • folekaule@lemmy.world
      link
      fedilink
      arrow-up
      39
      ·
      18 hours ago

      This is what source maps are for. With the right tools you can debug the original source instead of the minified version.

      • lobut@lemmy.ca
        link
        fedilink
        arrow-up
        15
        ·
        16 hours ago

        Remember to add --enable-source-maps and as long as your tools are configured properly it should point to the right line!

        • marlowe221@lemmy.world
          link
          fedilink
          English
          arrow-up
          6
          ·
          9 hours ago

          Thanks for the tip! I’ll double check that when I get back to work next week.

          I’ve written a lot of NodeJS apps in vanilla JS, and plenty of .NET backend stuff too. The transition to serious TS has been relatively recent. I like it alright, but dislike the added complexity that comes with all the various config files - vanilla JS has enough of that already!

          • lobut@lemmy.ca
            link
            fedilink
            arrow-up
            3
            ·
            8 hours ago

            I’m a former .NET dev … I stopped quite a few years ago after I joined a Bay Area company. It was quite a change. React 1 was just coming out and I used to just write bad JS on my webpages and I had to rewrite our front-end in React. Also, ES5 or 6 or whatever was getting popular and we had to transition from CoffeeScript.

            The JS world gave me whiplash after doing so many years of Enterprise .NET. The .NET tools felt so much more polished.

            The fundamentals of Node to me were different than .NET. .NET felt like it had a lot more cruft and “magic” at first. With Node it felt deceptively simpler at first. Then when the require syntax was going away and we had imports but then it wasn’t a real import. It was a TypeScript import or a webpack import that did a require behind the scenes. Then I had to understand why we used typescript but then what was the point of tsc vs babel vs webpack vs esbuild what their roles were and I kind got a bit obsessed with understanding what they did and what was happening under the hood. Then Node officially did do import and I had to understand what that was all about and how it affected our compilers or bundlers.

            Sorry I rant pointlessly. Godspeed on your journey!

            • marlowe221@lemmy.world
              link
              fedilink
              English
              arrow-up
              3
              ·
              7 hours ago

              No worries on the ranting!

              In this industry where we are all a little afraid to admit that we don’t know something, it’s nice to be reminded that everyone is always learning all the time and that there’s no way any of us can know everything.

              I’m enjoying the learning process, despite its paper cuts, and love where I work. I enjoy TS itself but I do wish the process of setting up a new project/config stuff were more streamlined. Maybe in the future!

      • marlowe221@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        16 hours ago

        Well sure. But the error messages don’t point to those, which was what had me chuckling about this meme.

          • marlowe221@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            12 hours ago

            Oh, they are included in the build. But I still get error messages that don’t actually point to the line in the TS source file sometimes.

            Maybe I have something configured wrong - TS projects always include a more config files of different kinds than I see in other languages I work in - but it happens.

      • python@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        16 hours ago

        It’s surprisingly good as a backend language, if you don’t really need OOP all that much. The perfect case is probably using it in microservices that only really need to do a bit of data manipulation and some database interfacing.

        • marlowe221@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          9 hours ago

          I’ve had pretty good experiences with it even situations with moderate data manipulation. There are some tricks you can use to engage different phases of the event loop to keep the data processing from blocking too much.

          It’s still not as good as Java/C#/Go, of course, but it can help get some more performance out of Node.