¿Hay algo en npm o en VS Code o en cualquier lugar que pueda agrupar o concatenar archivos Javascript basados en comentarios, como:
function myBigLibrary(){ //@include util.js //@include init.js function privateFunc(){...} function publicFunc(){ //@include somethingElse.js ... } return { init, publicFunc, etc } }
¿O algo así? Creo que tal cosa es común cuando sus archivos javascript son muy grandes. Todo lo que puedo encontrar son cosas complicadas como webpack.
Estoy buscando una solución equivalente que le permita incluir código arbitrario en posiciones arbitrarias en otro código. Supongo que eso causaría problemas para intellisense, pero una extensión podría manejar eso.
No estoy seguro de lo que realmente quiere decir, pero si se refiere a vincular variables de otros archivos javascript. probablemente esto te ayude
const { variable name } = require(the javascript file path)
ejemplo:
en index.js
const { blue } = require('./../js/blue.js) console.log(blue)
Mientras tanto en blue.js
const blue = "dumbass"
si esto no te ayuda solo ignora esto
Así que aquí hay una forma básica de lo que quería. He estado aprendiendo más sobre cómo puedes hacer cosas con esbuild u otros paquetes, pero no encontré algo que se ajustara a mis necesidades. Y esto es más simple y más flexible. Puede funcionar para cualquier tipo de archivo. Puede realizar actualizaciones automáticas cuando los archivos cambian usando nodemon en lugar de nodo para ejecutar este código.
const fs = require('fs') ///////////////////////// const input = 'example.js' const output = 'output.js' const ext = '.js' // looks for file with optional directory as: //== dir/file const regex = /\/\/== *([\w-\/]+)/g const fileContent = fs.readFileSync(input).toString() // replace the comment references with the corresponding file content const replacement = fileContent.replace(regex, (match, group)=>{ const comment = '//////// '+group+ext+' ////////\n\n' const replace = fs.readFileSync(group+ext).toString() return comment + replace }) // write replacement to a file fs.writeFileSync(output, replacement)