Búsqueda de sitios web

Compartir código entre el lado del cliente y el del servidor en una aplicación web TypeScript


Tengo un proyecto de TypeScript, y tengo un archivo de datos (.ts) (que incluye cosas como el título) y lo necesito tanto del lado del servidor como del cliente.

Mi estructura de directorios se ve así:

node_modules/
package.json
README.md
src/
    data.ts
    data.js (compiled data.ts)
    server.ts
    server.js (compiled server.ts)
    public/
        sw.ts
        sw.js (compiled sw.ts)
        [other static resources (.css, .html or other .ts)]

Los archivos src/*.ts están del lado del servidor, los archivos src/public/*.ts están del lado del cliente.

Entonces quiero importar data.ts tanto desde server.ts como desde sw.ts, pero require obviamente no funciona en sw.js.

¿Cómo puedo resolver esto? ¿O qué estructura de directorios sería mejor?

Respuesta #1

Organizaría de la siguiente manera

src/
    common/
        data.ts
    server/
        server.ts
    client/
        sw.ts

Y compila todo al outDir:../public. También usa module: commonjs.

CommonJS funciona de inmediato con Node (servidor) y Webpack (cliente).

Artículos relacionados