javascript - ¿Cómo puedo solucionar el error 'No se puede encontrar el módulo' con un paquete en un monorepo NX usando ts-node?
Actualmente estoy tratando de hacer que un monorepo NX construya correctamente mi proyecto. Estoy usando ts-node para compilar/crear un directorio admin-ui. El target en project.json para esto se ve así:
"targets:" {
..... other targets,
"ui": {
"executor": "nx:run-commands",
"options": {
"commands": ["ts-node src/compile-ui.ts"],
"cwd": "./apps/vendure"
},
"dependsOn": ["build"]
}
}
El compile-ui.ts se ve así (nombres cambiados):
import { MyPlugin } from '@project/myplugin'
import { AdvancedSearchPlugin } from '@vendure-plus/advanced-search-plugin'
import { compileUiExtensions } from '@vendure/ui-devkit/compiler'
import * as path from 'path'
async function main () {
const ui = compileUiExtensions({
outputPath: path.join(__dirname, '../admin-ui'),
extensions: [MyPlugin.uiExtensions, AdvancedSearchPlugin.uiExtensions],
devMode: false,
})
if (ui.compile) {
console.log('compiling ui extension')
await ui.compile()
}
}
main()
Cuando ejecuto mi objetivo de interfaz de usuario, obtengo el siguiente error:
Error: Cannot find module '@project/myplugin'El objetivo está en una aplicación NX y el @project/myplugin está en un paquete NX. Por alguna razón, no reconoce que es un paquete.
Intenté usar rutas relativas, pero NX las autocorrigió para usar la ruta correcta. Luego intenté ejecutar el archivo compile-ui.js compilado en la carpeta dist, lo que trajo otros problemas que no pude resolver.
El proyecto en sí debe estar configurado adecuadamente, las aplicaciones y paquetes están en el tsconfig base del mono repositorio.
¿No es esto posible con ts-node? ¡Muchas gracias!