angular-cli: Using invalid environment causes error in build (was "ERROR in Cannot read property 'length' of undefined")
(on existing project, on windows10) After updating :
- cli 31 to rc0
- angular packages to rc1
- typescript to 2.1.6
I get this insignifiant message error when running ng serve
or ng build
:
Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined
What does this mean ?
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Reactions: 72
- Comments: 169 (27 by maintainers)
Commits related to this issue
- chore: cleanup demo app experienced the random tsc error flu TypeError: Cannot read property 'length' of undefined at createSourceFile (/Users/David/Projects/github/dherges/ng-hal/demo/node_modu... — committed to ng-hal/ng-hal by dherges 7 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements Also changes 'src' to 'source', but retains backwards compat. Fix https://github.com/angular/angular-cli/issues/5053 — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements Also changes 'src' to 'source', but retains backwards compat. Fix https://github.com/angular/angular-cli/issues/5053 — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements Also changes 'src' to 'source', but retains backwards compat. Fix https://github.com/angular/angular-cli/issues/5053 — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements Also changes 'src' to 'source', but retains backwards compat. Fix https://github.com/angular/angular-cli/issues/5053 — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements, allow string styles/scripts Fix https://github.com/angular/angular-cli/issues/5053 Fix https://github.com/angular/angular-cli/issues/102... — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements, allow string styles/scripts Fix https://github.com/angular/angular-cli/issues/5053 Fix https://github.com/angular/angular-cli/issues/102... — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements, allow string styles/scripts Fix https://github.com/angular/angular-cli/issues/5053 Fix https://github.com/angular/angular-cli/issues/102... — committed to filipesilva/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements, allow string styles/scripts Fix https://github.com/angular/angular-cli/issues/5053 Fix https://github.com/angular/angular-cli/issues/102... — committed to angular/devkit by filipesilva 6 years ago
- fix(@angular-devkit/build-angular): validate fileReplacements, allow string styles/scripts Fix https://github.com/angular/angular-cli/issues/5053 Fix https://github.com/angular/angular-cli/issues/102... — committed to angular/angular-cli by filipesilva 6 years ago
Probably not the same cause but we had the same error (
Cannot read property 'length' of undefined
) when we accidentally deletedenvironment.prod.ts
during a refactoring process. Restoring this file solved our problem.I think in many cases this issue is caused when typescript tries to process a file that doesn’t exist. In one of my projects it was a missing
.d.ts
file. In another it was a missing environment ts file. Adding aconsole.log(fileName)
in the beginning of thecreateSourceFile
function atnode_modules/typescript/lib/typescript.js
helped me pinpoint the specific file. Remember to remove the changes or just reinstall yournode_modules
.This is a real issue and we will look at it.
I found a way to know which file is missing or with the wrong configuration. Open the typescript.js (
node_modules/typescript/lib/typescript.js
) and add aconsole.log("fileName " + fileName);
in the first line of the createSourceFile function, before the error, then you will find which file is missing.My problem was with the main.ts file. it was looking for src/main.ts and my file was in src/app/main.ts
Hi, has anyone solved this? I am still getting the same error:
Chriss-iMac:dnd-test christarasovs$ ng serve Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined at createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8980:109) at parseSourceFileWorker (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8940:26) at Object.parseSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8899:26) at Object.createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8727:29) at WebpackCompilerHost.getSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/compiler_host.js:210:27) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45859:29) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45790:27) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45901:17 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1115:30) at processReferencedFiles (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45899:16) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45884:21) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45790:27) at processRootFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45694:13) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45151:60 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1115:30) at Object.createProgram (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45151:16) at AotPlugin._setupOptions (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:124:28) at new AotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:23:14) at _createAotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12) at Object.exports.getNonAotConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:70:19) at NgCliWebpackConfig.buildConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-config.js:27:37) at Class.run (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/tasks/serve.js:37:98) at check_port_1.checkPort.then.port (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/commands/serve.js:103:26) at process._tickCallback (internal/process/next_tick.js:109:7) Chriss-iMac:dnd-test christarasovs$ ng build Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined at createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8980:109) at parseSourceFileWorker (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8940:26) at Object.parseSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8899:26) at Object.createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8727:29) at WebpackCompilerHost.getSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/compiler_host.js:210:27) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45859:29) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45790:27) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45901:17 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1115:30) at processReferencedFiles (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45899:16) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45884:21) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45790:27) at processRootFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45694:13) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45151:60 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1115:30) at Object.createProgram (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45151:16) at AotPlugin._setupOptions (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:124:28) at new AotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:23:14) at _createAotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12) at Object.exports.getNonAotConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:70:19) at NgCliWebpackConfig.buildConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-config.js:27:37) at Class.run (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/tasks/build.js:26:92) at Class.run (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/commands/build.js:143:26) at Class.<anonymous> (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/ember-cli/lib/models/command.js:134:17) at process._tickCallback (internal/process/next_tick.js:109:7) Chriss-iMac:dnd-test christarasovs$ ng serve /Users/christarasovs/Desktop/dnd-test/src/app/app.component.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/core.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata/di.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/opaque_token.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/type.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata/directives.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/metadata.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/constants.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/metadata.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/forward_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/injector.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/reflective_injector.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/provider.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/reflective_provider.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/di/reflective_key.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/util/decorators.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata/view.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata/lifecycle_hooks.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/change_detection_util.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/facade/lang.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/metadata/ng_module.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/version.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/util.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/application_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/error_handler.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/application_init.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/console.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/compiler.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/facade/errors.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/component_factory.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/change_detection.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/differs/iterable_differs.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/change_detector_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/differs/default_iterable_differ.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection/pipe_transform.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/element_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/render/api.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_keyframe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_styles.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_player.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/animation_view_context.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_queue.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/zone/ng_zone.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/facade/async.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Subject.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Operator.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Subscriber.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Observer.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Subscription.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Observable.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/observable/IfObservable.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/observable/ErrorObservable.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/Scheduler.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/rxjs/scheduler/Action.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/debug_context.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view_container.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view_container_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/template_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view_ref.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view_type.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/view_utils.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/security.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/ng_module_factory.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/component_factory_resolver.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/testability/testability.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/application_tokens.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/zone.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/render.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/ng_module_factory_loader.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/query_list.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/linker/system_js_ng_module_factory_loader.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/debug/debug_node.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/facade/collection.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/change_detection.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/platform_core_providers.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/i18n/tokens.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/application_module.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/profile/profile.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/profile/wtf_impl.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/core_private_export.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_constants.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_group_player.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_sequence_player.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_style_util.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_transition.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/animation/animation_transition_event.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/debug/debug_renderer.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/reflection.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/reflector.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/platform_reflection_capabilities.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/types.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/reflector_reader.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/reflection/reflection_capabilities.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/core/src/util/lang.d.ts /Users/christarasovs/Desktop/dnd-test/src/app/app.module.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/platform-browser.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/animation_driver.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/private_import_core.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/title.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/tools/tools.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/debug/by.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/facade/collection.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/debug/ng_probe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/dom_tokens.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/events/event_manager.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/events/hammer_gestures.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/security/dom_sanitization_service.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/private_export.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/browser_adapter.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/generic_browser_adapter.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/dom_adapter.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/location/browser_platform_location.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/common.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/platform_location.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/location_strategy.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/hash_location_strategy.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/path_location_strategy.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/location/location.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/localization.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/common_module.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_class.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_for.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_if.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_plural.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_switch.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_style.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/directives/ng_template_outlet.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/async_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/facade/async.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/date_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/i18n_plural_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/i18n_select_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/json_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/lowercase_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/number_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/slice_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/pipes/uppercase_pipe.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/common/src/version.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/browser/testability.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/dom_renderer.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/shared_styles_host.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/events/dom_events.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/events/key_events.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/web_animations_driver.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/web_animations_player.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/dom/dom_animate_player.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/platform-browser/src/version.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/forms.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/abstract_control_directive.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/facade/async.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/model.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/validators.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/abstract_form_group_directive.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/control_container.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/form_interface.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/ng_control.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/control_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/checkbox_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/default_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/ng_control_status.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/ng_form.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/ng_model.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/ng_model_group.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/radio_control_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/reactive_directives/form_control_directive.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/reactive_directives/form_control_name.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/reactive_directives/form_group_directive.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/reactive_directives/form_group_name.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/select_control_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/directives/select_multiple_control_value_accessor.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/form_builder.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/validators.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/version.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/forms/src/form_providers.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/index.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/backends/browser_xhr.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/backends/jsonp_backend.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/base_response_options.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/headers.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/interfaces.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/enums.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/static_request.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/body.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/url_search_params.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/static_response.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/backends/browser_jsonp.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/backends/xhr_backend.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/base_request_options.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/http.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/http_module.d.ts /Users/christarasovs/Desktop/dnd-test/node_modules/@angular/http/src/version.d.ts /Users/christarasovs/Desktop/dnd-test/src/app/dnd/dnd.component.ts /Users/christarasovs/Desktop/dnd-test/src/app/dnd/text/text.component.ts /Users/christarasovs/Desktop/dnd-test/src/app/ng2-dnd/config/testing-utils.ts /Users/christarasovs/Desktop/dnd-test/src/app/ng2-dnd/node_modules/@types/jasmine/index.d.ts Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined at createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8982:109) at parseSourceFileWorker (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8942:26) at Object.parseSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8901:26) at Object.createSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:8729:29) at WebpackCompilerHost.getSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/compiler_host.js:210:27) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45861:29) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45792:27) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45903:17 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1116:30) at processReferencedFiles (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45901:16) at findSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45886:21) at processSourceFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45792:27) at processRootFile (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45696:13) at /Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45153:60 at Object.forEach (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:1116:30) at Object.createProgram (/Users/christarasovs/Desktop/dnd-test/node_modules/typescript/lib/typescript.js:45153:16) at AotPlugin._setupOptions (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:124:28) at new AotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@ngtools/webpack/src/plugin.js:23:14) at _createAotPlugin (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:55:12) at Object.exports.getNonAotConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-configs/typescript.js:70:19) at NgCliWebpackConfig.buildConfig (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/models/webpack-config.js:27:37) at Class.run (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/tasks/serve.js:37:98) at check_port_1.checkPort.then.port (/Users/christarasovs/Desktop/dnd-test/node_modules/@angular/cli/commands/serve.js:103:26) at process._tickCallback (internal/process/next_tick.js:109:7) Chriss-iMac:dnd-test christarasovs$
guys thanks to solve this bug to me ! i effectivly had this /// reference to .d.ts file not exist anymore in angular4 !
one of my team member import this file accidently, he don’t remember why he did this, this file was available before in ng 2.x (i think)
<reference path="../../../../../node_modules/@angular/core/src/facade/async.d.ts"/>
in another file he imported
isPresent from "@angular/core/src/facade/lang"
but this isPresent is now in this path"@angular/core/typings/src/facade/lang";
ps: i still not understand what is this isPresent but good no more this insignifiant error1
I let this issue open until a team memeber improve message error terminal cc @ctaepper @calebkiage , @hansl
I fixed this by making sure my
main
property pointed to mymain.ts
relative to theroot
property. Since myroot
is set tosrc
andmain.ts
is atsrc/app/main.ts
I changed mymain
property toapp/main.ts
.I think I have narrowed down the cause of this error. My environment files etc all appear to match those of a new ng5 app so that wasn’t my issue. This line in the
@ngtools/webpack
plugin is why my tests fail on the second run: https://github.com/angular/angular-cli/blob/master/packages/%40ngtools/webpack/src/plugin.ts#L622-L624It looks like there is a bug in
_findLazyRoutesInAst()
that only affects ng4 apps.this._getLazyRoutesFromNgtools()
Works fine and is used on the first pass.this._findLazyRoutesInAst();
Is used on the second pass and always results in an eventual length of undefined error.I am going to debug a little more and see what each function returns. For now, locally, replacing that ternary statement with
this._discoveredLazyRoutes = this._getLazyRoutesFromNgtools();
allows me to run my tests normally.So, managed to trace back the issue. In my case, downgrading @angular/cli from 1.6.3 to 1.6.1 made it work. Not sure what exactly the issue is but I just ended up looking for differences in package-lock.json. Hope it helps!
I have the same issue in one of my projects. What is different is that this happens only on ng-test hot reload. So, the first run it works, then, if I save any file it fails. ng-serve works with hot-reload just fine. So, I added console.log in the createSourceFile method and this is what it says:
Filename to create: /Users/utukku/Documents/Projects/frontend-app/src
So, it’s not even a file. It’s a folder. Not sure what to make of this. Any help is highly appreciated.
additional info : I tried in green project “
ng new mynewproject --ng4
” it work well, it run!then move all my old /app folder to this new one and I get same error !
apparently the issue is in my code/module … My project is relativly big I can’t remove module by module 😦
how achieve this ? can I get more signifiant message error
thanks
Apart from the lack of a descriptive message (which is the main focus for this issue), should anyone run into this case, don’t panic - chances are that it’s just a temporary glitch. I ran into this situation twice and it looked like a local problem with syncing files. The second incident of mine was a bit more clear to me - it followed a
git pull
. Waiting ca 1 minute and rebooting ng serve cured the app and restored its running state.FWIW: Since this is
ng serve
reboot that helps, I would recommend to look closer at the angular-cli.json file - perhaps into theapps.assets
item which has been made a mandatory array if I am correct (meaning it does not accept a single string anymore).I just had the same issue, and got to resolve it by changing the path to the enviroments folder in my .angular-cli.json. From this:
To this:
Be sure that you’ve the reference to the files right.
I have the same problem when running karma unit tests. here is my findings
one of my unit test will write data to a json file. and i get this error
I added a console.log statements at
createSourceFile()
and atAotPlugin._findLazyRoutesInAst
.i noticed the following in
AotPlugin._findLazyRoutesInAst
.for (const filePath of changedFilePaths) { }
. I added a console.log statement to see what was in thechangedFilePaths
, I noticed the following:Hence, i am getting the above error.
This happens when i make changes to any files (irrespective of .ts files). I tried modifying a json file and the above happened. I tried the following: in karma.conf.js (as per the official config docs, i added
exclude: ["./src/nonCodeRelatedData/**"]
. andfiles: [ {pattern: "./src/nonCodeRelatedData/**", watched: false, included: false, served: false}]
But no luck.Could someone point me the remedy to this problem? Any help is greatly appreciated.
Checking out from the repository into a new directory and running
npm install
fixed the issue - the files are the same. The project in the original directory became suddenly unusable - was not able to find out the reason.This may also happen, when you have defined an
environment
-file in.angular-cli.json
but theenvironment.ts
file it self doesn’t exist.@ChrisTarasovs can you read this tread please because as said you can find error using this adivce
Issue was resolved by adding an
environment.prod.ts
file as stated by @moosetraveller. Thanks! Though, an error message more appropriate to the cause would be much appreciated.@moosetraveller Thanks a lot. This actually happened to be the issue. On our staging server we had no environment file set up.
This error seem to have different reasons and different solutions. In my case I had a reference
///<reference path="..\..\..\typings\globals\google.maps\index.d.ts" />
pointing to a file that did not exist.i had the same problem, other cause: one of my dependencies referenced a .d.ts file which was simply not there (https://github.com/swimlane/ngx-charts/blob/master/release/d3.js#L1) if i run ng build without aot and prod flag, it would try to lookup that file which resultet in that error
anyway, now i am not sure, if i am doing it wrong, or if @swimlane has an error here…
I followed the instruction to put a
console.log()
call intypescript.js
. Funnily, my angular project fails when it tries to read:Obviously, this isn’t a source file - it’s a directory where my sources are kept, but for some reason ng cli tries to read it like it was a file and fails miserably. Any ideas what might be wrong in this case?
Same here, running unit tests in watch mode results in this issue on re-build. Downgrading to Angular CLI
1.6.1
seems to fix it (temporarily).https://github.com/angular/devkit/pull/667 should fix this in 6.0 by failing early when the specified environment file (it will be called
fileReplacements
in v6) does not exist.It seems to be an issiue of file/files cannot find in app. I spent some 2-3 hours but resolved with including environments directory to project re-install from repo etc.
In my case, it’s the same what @samupl has reported. A directory is passed to to TypeScript’s
createSourceFile
method by TypeScriptFileRefactor constructor.I’ve bumped into this issue when I’ve implemented dynamic stories loading in Storybook. By using
require.context
to search for files in a specific directory webpack starts watching the directory alongside the files and this directory is passed tocreateSourceFile
when a change happens.I’m not sure who is to blame for not skipping directories in the course of events leading to
createSourceFile
call.I am actually able to run ng serve and ng test normally, the watcher works well for ng serve, but I got this error when I update any file while I am on ng test, after looking at the comments, I made sure I have environment.ts and no issues on my tests.ts (even rolling back to previous versions). Doing what @mhamel06 worked well, but I was wondering if there is something else that we can check on our end just to fix the watcher loop on ng test mode, any thoughts on karma.conf and webpack conf maybe just to avoid this?.
I have the same issue (more accurately described in 9558 since it has to do with re-loads, the test runner works fine on the first
ng test
). I downgraded the CLI temporarily to 1.6.1 but in doing so, I had to install@angular-devkit/core
as a dev dependency (yarn add --dev @angular-devkit/core
) as well to get it to compile.For me it was missing environment files. Adding them fix the issue
Adding missing environment file fixed this form me.
I stopped ng serve and restarted it, now the error message is gone.
Having looked at my
.angular-cli.json
file.I noticed that the
environment.prod.ts
andenvironment.dev.ts
files were missing. Adding these files in has fixed this for me.@istiti
content of my
environment.prod.ts
:Maybe, there are additional causes for this issue. CLI error message is misleading in this case.
nop, it’s not same cause… I have this file under
src/environments/environments.prod.ts
cc @moosetraveller
I have the same issue on ubuntu 14.04 with node 7.6.0, npm 4.1.2 when running:
ng build
. works on my windows machine. here is my package.json.Provide your
.angular-cli.json
, please.The above comment about the environment file caught my attention. I was with the same problem and looking at my .angular-cli.json I could fix and reproduce the error when one of those files below were missing:
So, those files must exist otherwise this error will happen. The cli could raise a more meaningful error message.
I had a similar message recently when I added some new environments files in the angular-cli.json
The problem was I misstyped the name of one of the files: environment.xamp**.**.ts (I typed twice the dot)
I was very hard to figure what was wrong with my project (I knew only it had to be something with the environments files). A nice error sugesting about how i misspelled the files would have been perfect 😕
Thank you for a quick reply, @filipesilva.
After few hours of debugging, I think the problem was introduced by setting a filename to
CompilerHost._changedFiles
even if the filename is not present inCompilerHost._files
array introduced in commit to avoid caching binary resources as UTF8.That way when a directory is passed to
CompilerHost.invalidate
method it is handled as a file causing issue mentioned above.What was the motivation for the change? It seems unrelated to other changes introduced in that commit.
Thanks so much @simonneedham, problem solved, in my own case, i compared the .angular-cli.json file with an old backup i did and i noticed the “main”: “app/main.ts”, line is having app so i removed the app and ng serve and it started working again.
@kelvinrolex Most people are seeing this error when there is a filepath configured in the .angular-cli.json that the cli can’t find in your project directory. Quite often it appears to be a missing environment.ts but It’s going to be a case of checking each file in turn and making sure the filepath is correct.
@unsama simply do:
if(data && data.length > 0)
I’ve received this error when a generated (and referenced) d.ts file was missing. If you receive the error the issue is probably in you project…
/// <reference path="../../someFileThatDidntExist.d.ts" />
@istiti sure, here is angular-cli.json and package.json
package.json { “name”: “testing”, “version”: “0.0.0”, “license”: “MIT”, “angular-cli”: {}, “scripts”: { “ng”: “ng”, “start”: “ng serve”, “test”: “ng test”, “pree2e”: “webdriver-manager update --standalone false --gecko false”, “e2e”: “protractor” }, “private”: true, “dependencies”: { “@angular/common”: “^2.3.1”, “@angular/compiler”: “^2.3.1”, “@angular/core”: “^2.3.1”, “@angular/forms”: “^2.3.1”, “@angular/http”: “^2.3.1”, “@angular/platform-browser”: “^2.3.1”, “@angular/platform-browser-dynamic”: “^2.3.1”, “@angular/router”: “^3.3.1”, “core-js”: “^2.4.1”, “rxjs”: “^5.2.0”, “ts-helpers”: “^1.1.1”, “typescript”: “^2.0.10”, “zone.js”: “^0.7.7” }, “devDependencies”: { “@angular/compiler-cli”: “^2.3.1”, “@types/jasmine”: “2.5.38”, “@types/node”: “^6.0.42”, “angular-cli”: “1.0.0-beta.28.3”, “codelyzer”: “~2.0.0-beta.1”, “jasmine-core”: “2.5.2”, “jasmine-spec-reporter”: “2.5.0”, “karma”: “1.2.0”, “karma-chrome-launcher”: “^2.0.0”, “karma-cli”: “^1.0.1”, “karma-jasmine”: “^1.0.2”, “karma-remap-istanbul”: “^0.2.1”, “protractor”: “~4.0.13”, “ts-node”: “1.2.1”, “tslint”: “^4.3.0”, “typescript”: “~2.0.3” } }
angular-cli.json { “project”: { “version”: “1.0.0-beta.28.3”, “name”: “testing” }, “apps”: [ { “root”: “src”, “outDir”: “dist”, “assets”: [ “assets”, “favicon.ico” ], “index”: “index.html”, “main”: “main.ts”, “polyfills”: “polyfills.ts”, “test”: “test.ts”, “tsconfig”: “tsconfig.json”, “prefix”: “app”, “styles”: [ “styles.css” ], “scripts”: [], “environments”: { “source”: “environments/environment.ts”, “dev”: “environments/environment.ts”, “prod”: “environments/environment.prod.ts” } } ], “e2e”: { “protractor”: { “config”: “./protractor.conf.js” } }, “lint”: [ { “files”: “src//*.ts", “project”: “src/tsconfig.json” }, { “files”: "e2e//*.ts”, “project”: “e2e/tsconfig.json” } ], “test”: { “karma”: { “config”: “./karma.conf.js” } }, “defaults”: { “styleExt”: “css”, “prefixInterfaces”: false, “inline”: { “style”: false, “template”: false }, “spec”: { “class”: false, “component”: true, “directive”: true, “module”: false, “pipe”: true, “service”: true } } }
Thank you @istiti I did read and tried several time what was said. So above function createSourceFile(fileName, sourceText, languageVersion, setParentNodes, scriptKind) { I have added console.log(fileName); on line 8724 , right above the function and tried inside the function also.
but than I run ng serve and I get the same issue as I get just the same error. Don’t seem to understand how you can get the ouput of console.log if that is shown in the browser but I can even load the page?
Currently I got fallbackLoader option has been deprecated - replace with “fallback” loader option has been deprecated - replace with “use” fallbackLoader option has been deprecated - replace with “fallback” loader option has been deprecated - replace with “use” fallbackLoader option has been deprecated - replace with “fallback” loader option has been deprecated - replace with “use” fallbackLoader option has been deprecated - replace with “fallback” loader option has been deprecated - replace with “use” Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined at createSourceFile (C:\Users\ctarasovs\AppData\Roaming\npm\node_modules\ang ular-cli\node_modules\typescript\lib\typescript.js:8980:109) at parseSourceFileWorker (C:\Users\ctarasovs\AppData\Roaming\npm\node_module s\angular-cli\node_modules\typescript\lib\typescript.js:8940:26) at Object.parseSourceFile (C:\Users\ctarasovs\AppData\Roaming\npm\node_modul es\angular-cli\node_modules\typescript\lib\typescript.js:8899:26) at Object.createSourceFile (C:\Users\ctarasovs\AppData\Roaming\npm\node_modu les\angular-cli\node_modules\typescript\lib\typescript.js:8727:29) …
The strange thing here: the project with angular-cli rc.0 was working fine till executing the first
ng build --target=production
(maybe just a coincidence). Since then the project is broken.ng serve
gives the same error now.When I setup a new project, it is possible to build.
I removed and reinstalled angular-cli like documented (including node_modules) - the same. Also downgraded Typescript to 2.0.0 like the default for a blank project and took all possible settings of a blank project.
This error should be improved… for instance… in most of the cases is the environment.xxx.ts missing… so a message where file could not be found would be nice!
I have modified this file and it works fine, but it will never be fixed in any new version? This is my solution, it’s similar to @ atariman5000 but inside an for:
I too like others found the problem to be with the “plugin.js” file within “node_modules@ngtools\webpack\src\plugin.js”. The problem is with the “_findLazyRoutesInAst()” function. This function is called on the second pass when running your unit test (w/ Karma). This function only looks at files that have been modified, and there is a file path in the array “this._compilerHost.getChangedFilePaths()” that ends with “/src”, and all of the other paths end with .ts files. To resolve this problem, I check the file path to see if it ends with “.ts”, and if so, I push that path into an array. Below is my solution to this problem. I would like to submit this as a bug fix, but I do not know where to do so.
------- plugin.js : ln 211 -------
_findLazyRoutesInAst() { benchmark_1.time(‘AotPlugin._findLazyRoutesInAst’); const result = Object.create(null); var changedFilePaths = []; this._compilerHost.getChangedFilePaths().forEach(f => { if(f.endsWith(“.ts”)) { changedFilePaths.push(f); } }); for (const filePath of changedFilePaths) { const fileLazyRoutes = lazy_routes_1.findLazyRoutes(filePath, this._compilerHost, this._program);
I solved this problem (error during refactoring test). All is good for angular v4.3.* and v4.4*
rm -rf node_modules
npm install --no-optional
To me removing comments from the environments files worked 👍 🔢
I created this patch for version 1.7.3 , you can apply the patch to node_modules/@ngtools/webpack/src/plugin.js and you should be good to go.
I ran into this error, finally, I found out it was because a typo (exclamation mark inside the string interpolation). I wrote:
‘Server with ID {{ serverId }} is {{ serverStatus! }}’
instead of
‘Server with ID {{ serverId }} is {{ serverStatus }}!’
Just 4 Info, i had same Problem and i went almost crazy…
Cannot read property 'length' of undefined TypeError: Cannot read property 'length' of undefined at createSourceFile (C:\DEV\AFB\varias-bepro\bepro-frontend\src\main\frontend\node_modules\typescript\lib\typescrip t.js:14652:110)
But you know what the problem was?
at the beginning of one of my .ts file was a line like this:
///<reference path="../../../generated/rest/model/Template.ts"/> import {Component, OnDestroy, OnInit} from '@angular/core'; import {FormGroup} from '@angular/forms';
This caused the error! Without any hint. Nothing. I thought my enviroment is broken, some wrong version or something like that. I removed the line and it worked. But i still don’t know how the line got there in the first place…
I hope it helps somebody.
Reverting to 1.6.1 fixed it temporarily for me. I couldn’t figure out what file was giving the trouble.
I encountered this error when I started using custom environments. The problem was in my .angular-cli.json, it was a simple typo (made by me!):
broken:
fixed:
The error message was pretty unhelpful, luckily I noticed the typo!
ERROR in TypeError: Cannot read property ‘length’ of undefined at createSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:16640:110) at parseSourceFileWorker (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:16572:26) at Object.parseSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:16521:26) at Object.createSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:16371:29) at VirtualFileStats.getSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules@ngtools\webpack\src\compiler_host.js:67:35) at WebpackCompilerHost.getSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules@ngtools\webpack\src\compiler_host.js:207:38) at findSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70246:29) at processImportedModules (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70393:25) at findSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70274:17) at processImportedModules (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70393:25) at findSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70274:17) at processImportedModules (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70393:25) at findSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70274:17) at processImportedModules (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70393:25) at findSourceFile (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70274:17) at args (D:\Richard\Documents\workspace\registerinterest\node_modules\typescript\lib\typescript.js:70200:85)
Had this issue when run: ng build --prod
Fixed by:
npm uninstall -g @angular/cli
npm uninstall --save-dev @angular/cli
npm install -g @angular/cli@1.6.1
rmdir /s node_modules
npm install --save-dev @angular/cli@1.6.0
npm install
also, add environment.prod.ts under \src\environments
export const environment = {
production: true
};
So ran into this issue and was stuck on it for two days. Checked all
environment.ts
files and additional file paths inangular-cli.json
Angular refused to rebuild after I made any change. I tried the following before resorting to the fix below:Clearing out the node_modules using
rm -rf node_modules/*
and then doing a freshnpm install
Re-cloning the entire repo
Finally the only thing that resolved my issue was downgrading the
@ngtools/webpack
plugin from version1.9.0
to1.8.2
I am not sure if this is the right fix, but it worked for me. I’m adding this comment here because it might save someone some time down the line.
My Configuration:
OS: Mac OSX El Capitan 10.11.6
"@angular/cli": "1.4.2"
"typescript": "~2.3.3"
"webpack": "~3.5.5"
Everyone look at the lines below this one: https://github.com/angular/angular-cli/blob/4b0c7a35359effc1d93cd3bb5ddc5c441b3cf154/packages/%40ngtools/webpack/src/angular_compiler_plugin.ts#L157 That basePath variable is not used anywhere, and the actual config basePath gets reset to the current directory anyway… and later on in the execution jumping through some unintelligible code, ends up here: https://github.com/angular/angular-cli/blob/4b0c7a35359effc1d93cd3bb5ddc5c441b3cf154/packages/%40ngtools/webpack/src/refactor.ts#L107
source || _host.readFile(fileName)
is undefined. So basically if you move the files you wanna compile somewhere outside you get this. Can someone explain this nonsense code here?I got this similar issue when I moved one file to another directive during watch mode (ng serve). After doing ng build the issue got resolved!
I fixed this issue by making sure the names in
.angular-cli.json
for environment files were pointing to the right place.Eg. I had:
and should have had:
It was erroring on finding the right file (as described in adding the log statement to the typescript source above), but it was pointing at the correct file name, which was odd.
This happened to me, somehow my ‘typings’ folder was missing, I just restored it and everything worked fine.
FWIW in my case this error tripped after a large refactor / rename exercise. It went away after I restarted
ng serve
.I found the problem of my case: I change the location of tsconfig.spec.json and tsconfig.app.json up to src folder.
So when i put a console.log debug line in typescript.js line ~14877, i realized the error was in tests.js file!
So the reason was the path in tsconfig’s of files tag
“files” : [ “test.js” ] was wrong, because location changes. So i fixed than, to “files” : [ “src/test.js” ] !
This this can be the reason the this problem, for others persons. The karma start works fine now. ======================== My second case, when i ng serve, i receive the error below.
Cannot read property ‘length’ of undefined TypeError: Cannot read property ‘length’ of undefined at createSourceFile (/Users/Felipe/workspaces/workspaces/myproject/node_modules/typescript/lib/typescript.js:14877:109)
and the debug fileName - " content:/Users/Felipe/workspaces/myproject/node_modules/angular2-datatable/node_modules/@types/jasmine/index.d.ts s"
the path has the wrong root to the angular-datatable!
So i did get resolve this point.
@istiti Just to let you know that I am trying this on OS and Win system On OS I have setup with @angular 2.4.8 and on Win I have setup the latest 2.4.9
Here is the exact steps I tried
Currently with the files above here is my win setup also >npm --version 4.1.2
>ng --version angular-cli: 1.0.0-beta.28.3 node: 7.7.1 os: win32 x64 @angular/common: 2.4.9 @angular/compiler: 2.4.9 @angular/core: 2.4.9 @angular/forms: 2.4.9 @angular/http: 2.4.9 @angular/platform-browser: 2.4.9 @angular/platform-browser-dynamic: 2.4.9 @angular/router: 3.4.9 @angular/compiler-cli: 2.4.9
donno why to me it isn’t resolved :S and I have this file inside my project 😒
Your
.angular-cli.json
looks ok, not sure what is wrong. Maybe someone else will be able to help you 😉 .@istiti Did you use
ng new
to create the project?If so, make sure that you kept all original arrays in
.angular-cli.json
configuration likeassets
,styles
andscripts
. I received mistake as you do, because I removedassets
option from.angular-cli.json
.