Llegué a un punto en el que con mucho gusto importaría un archivo .vue en mi código del lado del servidor. Profundamente, realmente no uso las exportaciones de archivos *.vue todavía, pero algunos códigos son comunes para el lado del cliente y el lado del servidor y hacen referencia a estos archivos.
Estoy usando ts-node ahora para desarrollo/depuración y uso webpack para agrupar mi código de cliente con mis archivos *.vue.
Probé muchas soluciones pero no encontré ninguna que realmente funcionara, incluso el .d.ts mencionado en tsConfig.json
declare module '*.vue' { import Vue = require('vue') const value: Vue.ComponentOptions<Vue> export default value }¿Alguien conoce una solución elegante o debería renunciar a usar el paquete web también para el lado del servidor? (Tengo dudas ya que la compilación ya es bastante lenta solo con la compilación del lado del cliente)
Sugeriría extraer el código que es común tanto para el cliente como para el servidor en un directorio o paquete separado, luego puede importar este código tanto en el servidor como en el código del cliente.
No estoy seguro de cómo configuró su proyecto, pero una forma de abordar esto sería usar una configuración monorepo (puede consultar lerna , npm workspaces , yarn workspaces ). Otro enfoque sería colocar el código común en el directorio que actúa como su propio paquete npm, con su propio archivo package.json. Luego, desde los archivos package.json en el código del cliente y del servidor, puede hacer referencia al paquete común como una dependencia y usar el archivo:../path/to/common url para apuntar a un directorio local desde su directorio npm.