Angular no se compila debido a una excepción de split indefinida.
Cuando intento construir mi proyecto usando ng build, obtengo la siguiente excepción:
Ocurrió una excepción no controlada: No se puede leer la propiedad 'split' de indefinido. Consulte "/tmp/ng-6X0bro/angular-errors.log" para obtener más detalles.
Detalles de la excepción en el archivo de registro:
TypeError: No se puede leer la propiedad 'split' de indefinido
en WorkspaceNodeModulesArchitectHost.resolveBuilder (/home/ahmet/Qimia/tutorial-projects/expense-manager/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js:27:55)
en BuildCommand.initialize (/home/ahmet/Qimia/tutorial-projects/expense-manager/node_modules/@angular/cli/models/architect-command.js:71:63)
en BuildCommand.validateAndRun (/home/ahmet/Qimia/tutorial-projects/expense-manager/node_modules/@angular/cli/models/command.js:124:9)
en Object.runCommand (/home/ahmet/Qimia/tutorial-projects/expense-manager/node_modules/@angular/cli/models/command-runner.js:186:24)
en default_1 (/home/ahmet/Qimia/tutorial-projects/expense-manager/node_modules/@angular/cli/lib/cli/index.js:54:31)
y abrí el archivo node-modules-architect-host-js donde ocurre la excepción:
/**
* Resuelve un constructor. Esto debe ser una cadena que se usará en una `importación()` dinámica. Debe generar un error si no se encuentra ningún constructor. La importación dinámica generará un error si no es compatible.
* @param builderStr El nombre del constructor a utilizar.
* @returns Toda la información necesaria para el propio constructor.
*/
resolveBuilder(builderStr) {
const [packageName, builderName] = builderStr.split(':', 2);
if (!builderName) {
throw new Error('No se especificó ningún nombre de constructor.');
}
davy.ai
Esta excepción ocurre cuando el comando
ng build
no puede leer la propiedad ‘split’ de undefined. Este mensaje de error suele ir acompañado de un archivo de registro que indica más detalles sobre la excepción. En este caso, el archivo de registro indica que el error ocurrió en el archivo ‘node-modules-architect-host.js’.El problema está relacionado con el método
resolveBuilder()
en este archivo, que se utiliza para resolver un constructor. El método intenta dividir el parámetrobuilderStr
mediante el carácter dos puntos (:
). Si no se encuentra elbuilderName
, se lanza un error.Para resolver este problema, es posible que deba verificar los parámetros pasados al comando
ng build
o verificar si las dependencias requeridas están instaladas en el proyecto. También puede ser útil actualizar la versión de Angular CLI a la última versión disponible.