Desarrollo una biblioteca de paquetes con una configuración compleja de TypeScript + Webpack. Cuando construyo algunos paquetes, se integran correctamente en una carpeta dist . Por ejemplo este:
Verá index.js junto con index.d.ts como se esperaba.
Pero para algunos otros paquetes, a pesar de usar la misma configuración, termino con un resultado totalmente diferente. La carpeta dist está estructurada en paquetes, uno con el nombre de un paquete del que dependo ( @vulcanjs/graphql ), otro con el nombre del paquete actual ( @vulcanjs/mongo )
No tengo una reproducción mínima, pero el código es de código abierto: https://github.com/VulcanJS/vulcan-npm .
El problema es que, entonces, al importar desde este @vulcanjs/mongo , no puedo obtener los tipos porque index.d.ts vive en una carpeta anidada cuando debería estar en la raíz. Tampoco estoy seguro de que la carpeta graphql deba estar allí, ya que esos tipos provienen de un paquete diferente ( @vulcanjs/graphql ).
Cada configuración de paquete amplía las configuraciones raíz, tanto para Webpack como para TypeScript.
Sospecho que mi configuración de Webpack es incorrecta, uso la configuración externals , pero no la domino por completo:
module.exports = { devtool: "inline-source-map", mode: "production", output: { libraryTarget: "commonjs2", filename: "index.js", }, // This prevent bundling node_modules into the app // additionalModuleDirs allow handling root and nested node_modules // @see https://stackoverflow.com/questions/46010926/how-to-use-webpack-with-a-monorepo-yarnpkg-workspaces externals: [ nodeExternals({ additionalModuleDirs: [path.resolve(__dirname, "../node_modules")], }), ], // ...rest of the code, that simply configure babel and ts-loader¿Por dónde debo empezar a depurar este problema?