Giter VIP home page Giter VIP logo

Comments (7)

calculuschild avatar calculuschild commented on September 25, 2024 1

Vitreum is mostly a wrapper for Browserify, which is the bundler, with some default settings baked in. It also includes Babel (tranform new JS into backwards-compatible JS), and includes watchify, livereload, and nodemon which are the "auto-restart/rebuild" tools. Then it adds a string to the top of the bundle that launches the React app on the client. That's basically it.

  • Browserify is not getting updated much anymore (occasionally hiccups on newer JS), but we could update it to Webpack.
  • Babel should be kept. We have overwritten most of the Vitreum defaults in our buildHomebrewery.js script anyway.
  • Watchify tells Browserify to rebuild when a change is detected. Don't think it works with other bundlers but Webpack should have a similar tool
  • Nodemon should be kept. Lets us auto-restart the server when rebuild happens, for development
  • Livereload no longer works with newer browsers (like Nodemon but for restarting the browser page)

from homebrewery.

5e-Cleric avatar 5e-Cleric commented on September 25, 2024

#3479 might be related to Vitreum

from homebrewery.

Gazook89 avatar Gazook89 commented on September 25, 2024

Thanks for clarity on this. Livereload I can live without, but it seems some frameworks still have something similar.

from homebrewery.

5e-Cleric avatar 5e-Cleric commented on September 25, 2024

Can confirm Webpack has a similar thing, but i think i used a diferent command for it in Axe, not sure.

from homebrewery.

G-Ambatte avatar G-Ambatte commented on September 25, 2024

I have done some initial work on migrating Homebrewery to Browserify et al directly, in order to eliminate the technical debt that is Vitreum.

My working theory is that once we can plainly see how Browserify et al are actually being used by Homebrewery, then we can start to investigate and learn how to migrate from them to other tools, using the guides and articles on the internet at large that we would struggle to find if we were still trapped behind the obfuscation layer that is Vitreum.


To be clear, this is VERY much a learning experience for me, I'm figuring it out as I go and hopefully not unintentionally breaking anything. So if you know why something is the way that it is, or you know of a better way to achieve the goal, please don't hesitate to speak up.

from homebrewery.

G-Ambatte avatar G-Ambatte commented on September 25, 2024

Breaking it down, to the best of my knowledge, Vitreum has been providing the following functions to Homebrewery:

  • headTags.js - provides the Meta React component. Not sure if there's a reason that this should live in the bundler rather than the codebase directly.
  • transforms/asset.js - a wrapper for an async file copy function
  • transforms/less.js - a wrapper for less.render
  • transforms/pack.js - a wrapper for browserify

At this point in time, I have commented out watchFile and liveReload as Dev only tools.

from homebrewery.

G-Ambatte avatar G-Ambatte commented on September 25, 2024

I had not previously realized that we now have two systems for injecting Meta tags. So there exists the opportunity to standardize to a single Meta tag system. The Vitreum Meta tag is used on the Share and Edit pages to add <Meta name='robots' content='noindex, nofollow' />, and on the Home page to add <Meta name='google-site-verification' content='[content_redacted]' />.

In theory, at least, the ogMeta tag system used in app.js could be extended to incorporate these additional tags; alternatively, the ogMeta tags could be shifted to use the existing <Meta> React components.

from homebrewery.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.