7 ms·
I do not follow, can anyone help with more code/config examples of how to leverage this?
by noob_07 1y ago
I do not follow, can anyone help with more code/config examples of how to leverage this?
- shakna 1y agoOne example from the site: import module from 'node:module' const tree = new FileTree('site', import.meta.url) module.registerHooks(hooks.useTree(tree)) import('site/myfile.js') Here, site/myfile.js doesn't exist. It gets created as a reference by the FileTree library. Node thinks it is importing it. The import is also automatically reloaded, if the backend changes it. Caches are invalidated and objects replaced.
- sbjs 1y agoOh no, I must have mis-explained it. The file `site/myfile.js` does exist. All FileTree does is recursively load all files in a dir into memory. The `useTree` module hook does two things: * Pulls the file from memory when loading it instead of from disk * Adds a cache busting query string when resolving it for invalidation Combined with tree.watch(), this essentially allows you to add a very lightweight but extremely accurate hot module replacement system into Node.js const tree = new FileTree('src', import.meta.url) registerHooks(useTree(tree)) tree.watch().on('filesUpdated', () => import(tree.root + '/myfile.js')) import(tree.root + '/myfile.js') Now save src/myfile.js and see it re-executed