Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

852
Vistas
ng-packagr da No se proporcionó ningún nombre para el módulo externo

Cuando se usa ng-packagr para empaquetar un proyecto @my/common-util, no hay problemas. Esta clase contiene una clase abstracta llamada AbstractPerson en abstract-person.ts.

En otro proyecto llamado @my/common-impl, se creó otra clase Person que amplía AbstractPerson y la importa usando el nombre del paquete @my/common-util. Cuando uso ng-packagr para empaquetarlo, aparece el siguiente error -->

No se proporcionó ningún nombre para el módulo externo '@my/common/abstract-person' en options.globals - adivinando 'abstractPerson'

Como parecía que era una advertencia, sigo instalando npm tanto @my/common como @my/common-impl en otro proyecto, pero aparece el siguiente error cuando importo la clase Person de @my/common-impl


ERROR en ./node_modules/@my/common-impl/esm5/common-impl.js Módulo no encontrado: Error: No se puede resolver '@my/common/abst ract-person' en 'C:\Data\me\ node_modules\@my\common-impl\e sm5' resolve '@my/common/abstract-person' in 'C:\Data\me\node_modules\@my\common-impl\e sm5' La solicitud analizada es un módulo que utiliza la descripción archivo: C:\Data\me\node_modules\@my\common-impl\package.json (ruta relativa: ./esm5) El campo 'navegador' no contiene una configuración de alias válida después de usar el archivo de descripción: C:\ Data\me\node_modules\@my\common-impl\package.json (ruta relativa: ./esm5) se resuelve como módulo


Probé varias cosas como elementos externos, globales, umdModuleIds en package.json (ver a continuación), pero ninguno de estos funcionó.

Aquí está paquete.json


 { "name": "@my/common-impl", "version": "1.0.0-alpha.0", "private": true, "dependencies": { "@my/common": "1.0.0-alpha.0" }, "peerDependencies": { "lodash": "^4.17.4" }, "ngPackage": { "$schema": "./node_modules/ng-packagr/ng-package.schema.json", "dest": "dist/common-impl", "workingDirectory": "../.ng_build", "lib": { "entryFile": "src/public_api.ts", "externals": [ "@my/common/abstract-person" ], "globals": { "@my/common/abstract-person": "AbstractPerson" }, "umdModuleIds": { "abstract-person" : "AbstractPerson" } } } }

¿Qué más se requiere para que esto sea rectificado?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Estaba trabajando con un módulo npm llamado katex . Agregar esto a umdModuleIds en ./projects/myLibname/ng-package.json funcionó para mí.

 { "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/documentations", "lib": { "entryFile": "src/public_api.ts", "umdModuleIds": { "katex": "katex" } } }

Esto hizo que la siguiente advertencia desapareciera

No se proporcionó ningún nombre para el módulo externo 'katex' en output.globals – adivinando 'katex'

over 4 years ago · Santiago Trujillo Denunciar

0

Debe usar la propiedad "paths" de tsconfig.lib.json en su biblioteca.

Este es el problema:

Agrego mi biblioteca1 y biblioteca2 en mi carpeta de proyecto monorepo .

 project: -> library1 -> tsconfig.lib.json -> ... -> library2 -> tsconfig.lib.json -> ... -> tsconfig.json -> ...

tsconfig.json

 { ... "compilerOptions": { ... "paths": { "library1": [ "../dist/library1" ], "library2": [ "../dist/library2" ], }, }

Y usé import {lib1Module} from 'library1' en el código de library2. para resolver no module lib1Module found el error i ovveride la ruta de la biblioteca1 en la biblioteca2 tsconfig.lib.json

tsconfig.lib.json

 { "extends": "../../tsconfig.json", "compilerOptions": { ... "paths": { "library1": [ "../../../dist/library1" ] }, ... },

Probablemente su problema se resolverá si usa la propiedad de paths en lugar de "umdModuleIds", "globales" y "externos"

Y finalmente, debo mencionar este hecho, los "externos" ya no existen en el esquema ng-packagr .

over 4 years ago · Santiago Trujillo Denunciar

0

En mi caso resolví las advertencias de esta manera.

ng-paquete.json

 { "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/test-lib", "lib": { "entryFile": "src/public-api.ts", "umdModuleIds": { "@libs/shared": "../../dist/shared", "@libs/animations": "../../dist/animations", "saturn-datepicker": "saturn-datepicker", "moment": "moment" } } }

tsconfig.json

 { "compileOnSave": false, "compilerOptions": { "importHelpers": true, "outDir": "./dist/out-tsc", "sourceMap": true, "declaration": false, "module": "esnext", "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, "target": "es5", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2018", "es2019", "dom" ], "allowSyntheticDefaultImports": true, "baseUrl": "./", "paths": { "@app/*": [ "projects/test-app/src/app/*" ], "@libs/*": [ "dist/*" ], "shared": [ "dist/shared" ], "shared/*": [ "dist/shared/*" ], "animations": [ "dist/animations" ], "animations/*": [ "dist/animations/*" ], } } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda