Skip to content

Contribute Docs: Setup error on Windows or WSL 1 #2531

@KingDarBoja

Description

@KingDarBoja

Version info

On Windows 10 (No WSL).

  • Angular: 9.1.9 (CLI)
  • Firebase: 8.4.3 (firebase-tools)
  • NodeJS: 12.14.0 (using nvm)
  • Yarn: 1.21.1 (global)

On Ubuntu 18.04 LTS Linux x64 (WSL 1).

  • Angular: 9.1.4 (CLI)
  • Firebase: 8.4.3 (firebase-tools)
  • NodeJS: 12.18.2 (using nvm)
  • Yarn: 1.22.4 (global)

How to reproduce these conditions

Steps to set up and reproduce

For Windows-only:

  1. Fork the repo
  2. clone the repo locally
  3. Run yarn (which does install packages)
  4. Run yarn build

For the last step, I noticed the package.json file has this script:

  • "build": "tsc tools/build.ts; node ./tools/build.js",

However, on Windows, you don't use the semicolon to chain commands, rather use &&:

  • "build": "tsc tools/build.ts && node ./tools/build.js",

After this small fix, I was able to run the yarn build command and the errors will start showing up on this platform:

$ yarn build
yarn run v1.21.1
$ tsc tools/build.ts && node ./tools/build.js
events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: spawn npx ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn npx',
  path: 'npx',
  spawnargs: [ 'typedoc', './src/core', '--json', './dist/typedocs/core.json' ]
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I searched on StackOverflow and found this answer, so I switched the following line in tools.ts:

// Before
import { spawn } from 'child_process';

// After
import { spawn } from 'cross-spawn';

And ran again the build. This time, I got a different output:

Console Log
$ yarn build
yarn run v1.21.1
$ tsc tools/build.ts && node ./tools/build.js

┌────────────────────────────────────────────────────────────┐
│                  npm update check failed                   │
│            Try running with sudo or get access             │
│            to the local update config store via            │
│ sudo chown -R $USER:$(id -gn $USER) C:\Users\INTEL\.config │
└────────────────────────────────────────────────────────────┘

┌────────────────────────────────────────────────────────────┐
│                  npm update check failed                   │
│            Try running with sudo or get access             │
│            to the local update config store via            │
│ sudo chown -R $USER:$(id -gn $USER) C:\Users\INTEL\.config │
└────────────────────────────────────────────────────────────┘

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib


Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib
Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib


Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib
Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

Using TypeScript 3.7.5 from D:\Programming\ts_projects\testzone\angularfire\node_modules\typedoc\node_modules\typescript\lib

JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\performance.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\firestore.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\messaging.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\storage.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\auth-guard.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\core.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\analytics.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\database.json



JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\remote-config.json

JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\auth.json


JSON written to D:\Programming\ts_projects\testzone\angularfire\dist\typedocs\functions.json

(node:9704) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
    at validateString (internal/validators.js:112:11)
    at Object.dirname (path.js:583:5)
    at D:\Programming\ts_projects\testzone\angularfire\tools\build.js:233:152
    at Array.map (<anonymous>)
    at D:\Programming\ts_projects\testzone\angularfire\tools\build.js:233:84
    at Array.map (<anonymous>)
    at D:\Programming\ts_projects\testzone\angularfire\tools\build.js:231:92
    at step (D:\Programming\ts_projects\testzone\angularfire\tools\build.js:44:23)
    at Object.next (D:\Programming\ts_projects\testzone\angularfire\tools\build.js:25:53)
    at fulfilled (D:\Programming\ts_projects\testzone\angularfire\tools\build.js:16:58)
(node:9704) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:9704) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Building Angular Package

------------------------------------------------------------------------------
Building entry point '@angular/fire'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire

------------------------------------------------------------------------------
Building entry point '@angular/fire/analytics'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/analytics

------------------------------------------------------------------------------
Building entry point '@angular/fire/auth-guard'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/auth-guard

------------------------------------------------------------------------------
Building entry point '@angular/fire/auth'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/auth

------------------------------------------------------------------------------
Building entry point '@angular/fire/database'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/database

------------------------------------------------------------------------------
Building entry point '@angular/fire/firestore'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
WARNING: Circular dependency: dist\packages-dist\esm2015\firestore\firestore.js -> dist\packages-dist\esm2015\firestore\document\document.js -> dist\packages-dist\esm2015\firestore\firestore.js
WARNING: Circular dependency: dist\packages-dist\esm2015\firestore\document\document.js -> dist\packages-dist\esm2015\firestore\collection\collection.js -> dist\packages-dist\esm2015\firestore\document\document.js
Bundling to UMD
WARNING: Circular dependency: dist\packages-dist\esm2015\firestore\firestore.js -> dist\packages-dist\esm2015\firestore\document\document.js -> dist\packages-dist\esm2015\firestore\firestore.js
WARNING: Circular dependency: dist\packages-dist\esm2015\firestore\document\document.js -> dist\packages-dist\esm2015\firestore\collection\collection.js -> dist\packages-dist\esm2015\firestore\document\document.js
Minifying UMD bundle
Writing package metadata
Built @angular/fire/firestore

------------------------------------------------------------------------------
Building entry point '@angular/fire/functions'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/functions

------------------------------------------------------------------------------
Building entry point '@angular/fire/messaging'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/messaging

------------------------------------------------------------------------------
Building entry point '@angular/fire/performance'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/performance

------------------------------------------------------------------------------
Building entry point '@angular/fire/remote-config'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
WARNING: 'remoteConfig' is imported from external module 'firebase/app' but never used
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/remote-config

------------------------------------------------------------------------------
Building entry point '@angular/fire/storage'
------------------------------------------------------------------------------
Compiling TypeScript sources through ngc
Bundling to FESM2015
Bundling to UMD
Minifying UMD bundle
Writing package metadata
Built @angular/fire/storage

------------------------------------------------------------------------------
Built Angular Package
 - from: D:\Programming\ts_projects\testzone\angularfire\src
 - to:   D:\Programming\ts_projects\testzone\angularfire\dist\packages-dist
------------------------------------------------------------------------------
npm notice
npm notice package: @angular/[email protected]
npm notice === Tarball Contents ===
npm notice 9.4kB  schematics/deploy/actions.js
npm notice 19.3kB esm2015/analytics/analytics.js
npm notice 2.8kB  esm2015/analytics/analytics.module.js
npm notice 39.9kB esm2015/analytics/analytics.service.js
npm notice 837B   esm2015/analytics/angular-fire-analytics.js
npm notice 24.6kB fesm2015/angular-fire-analytics.js
npm notice 44.4kB bundles/angular-fire-analytics.umd.js
npm notice 10.5kB bundles/angular-fire-analytics.umd.min.js
npm notice 877B   esm2015/auth-guard/angular-fire-auth-guard.js
npm notice 6.3kB  fesm2015/angular-fire-auth-guard.js
npm notice 9.1kB  bundles/angular-fire-auth-guard.umd.js
npm notice 2.8kB  bundles/angular-fire-auth-guard.umd.min.js
npm notice 700B   esm2015/auth/angular-fire-auth.js
npm notice 6.7kB  fesm2015/angular-fire-auth.js
npm notice 8.9kB  bundles/angular-fire-auth.umd.js
npm notice 2.6kB  bundles/angular-fire-auth.umd.min.js
npm notice 815B   esm2015/database/angular-fire-database.js
npm notice 23.9kB fesm2015/angular-fire-database.js
npm notice 43.0kB bundles/angular-fire-database.umd.js
npm notice 7.9kB  bundles/angular-fire-database.umd.min.js
npm notice 996B   esm2015/firestore/angular-fire-firestore.js
npm notice 33.6kB fesm2015/angular-fire-firestore.js
npm notice 52.2kB bundles/angular-fire-firestore.umd.js
npm notice 9.3kB  bundles/angular-fire-firestore.umd.min.js
npm notice 746B   esm2015/functions/angular-fire-functions.js
npm notice 4.4kB  fesm2015/angular-fire-functions.js
npm notice 6.1kB  bundles/angular-fire-functions.umd.js
npm notice 2.2kB  bundles/angular-fire-functions.umd.min.js
npm notice 730B   esm2015/messaging/angular-fire-messaging.js
npm notice 6.8kB  fesm2015/angular-fire-messaging.js
npm notice 9.3kB  bundles/angular-fire-messaging.umd.js
npm notice 3.3kB  bundles/angular-fire-messaging.umd.min.js
npm notice 927B   esm2015/performance/angular-fire-performance.js
npm notice 11.8kB fesm2015/angular-fire-performance.js
npm notice 15.9kB bundles/angular-fire-performance.umd.js
npm notice 4.8kB  bundles/angular-fire-performance.umd.min.js
npm notice 852B   esm2015/remote-config/angular-fire-remote-config.js
npm notice 16.5kB fesm2015/angular-fire-remote-config.js
npm notice 35.4kB bundles/angular-fire-remote-config.umd.js
npm notice 7.8kB  bundles/angular-fire-remote-config.umd.min.js
npm notice 772B   esm2015/storage/angular-fire-storage.js
npm notice 10.9kB fesm2015/angular-fire-storage.js
npm notice 13.8kB bundles/angular-fire-storage.umd.js
npm notice 3.4kB  bundles/angular-fire-storage.umd.min.js
npm notice 862B   esm2015/angular-fire.js
npm notice 13.2kB fesm2015/angular-fire.js
npm notice 29.8kB bundles/angular-fire.umd.js
npm notice 3.8kB  bundles/angular-fire.umd.min.js
npm notice 22.9kB esm2015/angularfire2.js
npm notice 9.5kB  esm2015/database/list/audit-trail.js
npm notice 14.6kB esm2015/auth-guard/auth-guard.js
npm notice 1.2kB  esm2015/auth-guard/auth-guard.module.js
npm notice 15.3kB esm2015/auth/auth.js
npm notice 1.2kB  esm2015/auth/auth.module.js
npm notice 2.6kB  schematics/deploy/builder.js
npm notice 13.3kB esm2015/database/list/changes.js
npm notice 11.1kB esm2015/firestore/collection/changes.js
npm notice 12.8kB esm2015/firestore/collection-group/collection-group.js
npm notice 18.3kB esm2015/firestore/collection/collection.js
npm notice 7.0kB  esm2015/database/list/create-reference.js
npm notice 4.7kB  esm2015/database/object/create-reference.js
npm notice 2.8kB  esm2015/database/list/data-operation.js
npm notice 10.0kB esm2015/database/database.js
npm notice 1.2kB  esm2015/database/database.module.js
npm notice 10.6kB esm2015/firestore/document/document.js
npm notice 11.1kB esm2015/firebase.app.module.js
npm notice 27.8kB esm2015/firestore/firestore.js
npm notice 2.8kB  esm2015/firestore/firestore.module.js
npm notice 7.3kB  esm2015/database/observable/fromRef.js
npm notice 5.4kB  esm2015/firestore/observable/fromRef.js
npm notice 2.9kB  esm2015/storage/observable/fromTask.js
npm notice 1.2kB  schematics/deploy/functions-templates.js
npm notice 9.2kB  esm2015/functions/functions.js
npm notice 1.2kB  esm2015/functions/functions.module.js
npm notice 8.4kB  esm2015/database/interfaces.js
npm notice 7.6kB  esm2015/firestore/interfaces.js
npm notice 981B   esm2015/storage/interfaces.js
npm notice 79B    schematics/interfaces.js
npm notice 16.6kB esm2015/messaging/messaging.js
npm notice 1.2kB  esm2015/messaging/messaging.module.js
npm notice 3.0kB  schematics/ng-add-common.js
npm notice 4.9kB  schematics/ng-add-ssr.js
npm notice 2.8kB  schematics/ng-add-static.js
npm notice 4.2kB  schematics/ng-add.js
npm notice 22.3kB esm2015/performance/performance.js
npm notice 2.5kB  esm2015/performance/performance.module.js
npm notice 5.4kB  esm2015/performance/performance.service.js
npm notice 926B   esm2015/analytics/public_api.js
npm notice 845B   esm2015/auth-guard/public_api.js
npm notice 652B   esm2015/auth/public_api.js
npm notice 1.5kB  esm2015/database/public_api.js
npm notice 1.7kB  esm2015/firestore/public_api.js
npm notice 712B   esm2015/functions/public_api.js
npm notice 696B   esm2015/messaging/public_api.js
npm notice 1.0kB  esm2015/performance/public_api.js
npm notice 870B   esm2015/public_api.js
npm notice 830B   esm2015/remote-config/public_api.js
npm notice 1.0kB  esm2015/storage/public_api.js
npm notice 291B   schematics/public_api.js
npm notice 8.6kB  esm2015/storage/ref.js
npm notice 44.7kB esm2015/remote-config/remote-config.js
npm notice 1.3kB  esm2015/remote-config/remote-config.module.js
npm notice 2.9kB  esm2015/database/list/remove.js
npm notice 1.8kB  esm2015/database/list/snapshot-changes.js
npm notice 1.6kB  esm2015/database/object/snapshot-changes.js
npm notice 2.2kB  esm2015/database/list/state-changes.js
npm notice 9.2kB  esm2015/storage/storage.js
npm notice 1.2kB  esm2015/storage/storage.module.js
npm notice 5.4kB  esm2015/storage/task.js
npm notice 1.4kB  esm2015/database/list/utils.js
npm notice 5.1kB  esm2015/database/utils.js
npm notice 3.1kB  schematics/utils.js
npm notice 8.3kB  analytics/angular-fire-analytics.metadata.json
npm notice 4.2kB  auth-guard/angular-fire-auth-guard.metadata.json
npm notice 1.9kB  auth/angular-fire-auth.metadata.json
npm notice 5.5kB  database/angular-fire-database.metadata.json
npm notice 11.6kB firestore/angular-fire-firestore.metadata.json
npm notice 2.8kB  functions/angular-fire-functions.metadata.json
npm notice 2.0kB  messaging/angular-fire-messaging.metadata.json
npm notice 4.5kB  performance/angular-fire-performance.metadata.json
npm notice 6.9kB  remote-config/angular-fire-remote-config.metadata.json
npm notice 3.4kB  storage/angular-fire-storage.metadata.json
npm notice 4.0kB  angular-fire.metadata.json
npm notice 283B   builders.json
npm notice 392B   collection.json
npm notice 248B   docs/firebase.json
npm notice 503B   analytics/package.json
npm notice 515B   auth-guard/package.json
npm notice 461B   auth/package.json
npm notice 497B   database/package.json
npm notice 506B   firestore/package.json
npm notice 506B   functions/package.json
npm notice 506B   messaging/package.json
npm notice 1.1kB  package.json
npm notice 524B   performance/package.json
npm notice 542B   remote-config/package.json
npm notice 488B   storage/package.json
npm notice 600B   schematics/deploy/schema.json
npm notice 811B   schematics/versions.json
npm notice 25.3kB fesm2015/angular-fire-analytics.js.map
npm notice 52.0kB bundles/angular-fire-analytics.umd.js.map
npm notice 38.6kB bundles/angular-fire-analytics.umd.min.js.map
npm notice 6.2kB  fesm2015/angular-fire-auth-guard.js.map
npm notice 6.8kB  bundles/angular-fire-auth-guard.umd.js.map
npm notice 6.3kB  bundles/angular-fire-auth-guard.umd.min.js.map
npm notice 6.6kB  fesm2015/angular-fire-auth.js.map
npm notice 7.2kB  bundles/angular-fire-auth.umd.js.map
npm notice 6.7kB  bundles/angular-fire-auth.umd.min.js.map
npm notice 29.6kB fesm2015/angular-fire-database.js.map
npm notice 56.1kB bundles/angular-fire-database.umd.js.map
npm notice 38.7kB bundles/angular-fire-database.umd.min.js.map
npm notice 42.9kB fesm2015/angular-fire-firestore.js.map
npm notice 66.1kB bundles/angular-fire-firestore.umd.js.map
npm notice 48.9kB bundles/angular-fire-firestore.umd.min.js.map
npm notice 4.0kB  fesm2015/angular-fire-functions.js.map
npm notice 4.4kB  bundles/angular-fire-functions.umd.js.map
npm notice 4.2kB  bundles/angular-fire-functions.umd.min.js.map
npm notice 7.3kB  fesm2015/angular-fire-messaging.js.map
npm notice 8.0kB  bundles/angular-fire-messaging.umd.js.map
npm notice 7.4kB  bundles/angular-fire-messaging.umd.min.js.map
npm notice 12.2kB fesm2015/angular-fire-performance.js.map
npm notice 12.7kB bundles/angular-fire-performance.umd.js.map
npm notice 11.3kB bundles/angular-fire-performance.umd.min.js.map
npm notice 20.4kB fesm2015/angular-fire-remote-config.js.map
npm notice 47.2kB bundles/angular-fire-remote-config.umd.js.map
npm notice 32.0kB bundles/angular-fire-remote-config.umd.min.js.map
npm notice 10.7kB fesm2015/angular-fire-storage.js.map
npm notice 11.2kB bundles/angular-fire-storage.umd.js.map
npm notice 10.1kB bundles/angular-fire-storage.umd.min.js.map
npm notice 15.0kB fesm2015/angular-fire.js.map
npm notice 41.0kB bundles/angular-fire.umd.js.map
npm notice 25.9kB bundles/angular-fire.umd.min.js.map
npm notice 3.7kB  docs/ionic/authentication.md
npm notice 5.6kB  docs/ionic/cli.md
npm notice 2.8kB  docs/universal/cloud-functions.md
npm notice 13.5kB docs/firestore/collections.md
npm notice 4.9kB  docs/firestore/documents.md
npm notice 5.1kB  docs/functions/functions.md
npm notice 5.4kB  docs/analytics/getting-started.md
npm notice 1.5kB  docs/auth/getting-started.md
npm notice 3.9kB  docs/deploy/getting-started.md
npm notice 5.6kB  docs/performance/getting-started.md
npm notice 5.4kB  docs/remote-config/getting-started.md
npm notice 4.6kB  docs/universal/getting-started.md
npm notice 4.7kB  docs/install-and-setup.md
npm notice 3.0kB  docs/install-angular-cli-windows10.md
npm notice 10.3kB docs/rtdb/lists.md
npm notice 8.2kB  docs/messaging/messaging.md
npm notice 5.9kB  docs/rtdb/objects.md
npm notice 2.3kB  docs/firestore/offline-data.md
npm notice 2.6kB  docs/universal/prerendering.md
npm notice 7.2kB  docs/firestore/querying-collections.md
npm notice 6.0kB  docs/rtdb/querying-lists.md
npm notice 6.6kB  README.md
npm notice 5.1kB  docs/auth/router-guards.md
npm notice 7.4kB  docs/storage/storage.md
npm notice 14.6kB docs/ionic/v2.md
npm notice 20.7kB docs/ionic/v3.md
npm notice 4.0kB  docs/version-4-upgrade.md
npm notice 3.0kB  docs/version-5-upgrade.md
npm notice 1.5kB  docs/version-6-upgrade.md
npm notice 1.1kB  analytics/analytics.d.ts
npm notice 315B   analytics/analytics.module.d.ts
npm notice 782B   analytics/analytics.service.d.ts
npm notice 82B    analytics/angular-fire-analytics.d.ts
npm notice 82B    auth-guard/angular-fire-auth-guard.d.ts
npm notice 82B    auth/angular-fire-auth.d.ts
npm notice 82B    database/angular-fire-database.d.ts
npm notice 82B    firestore/angular-fire-firestore.d.ts
npm notice 82B    functions/angular-fire-functions.d.ts
npm notice 82B    messaging/angular-fire-messaging.d.ts
npm notice 82B    performance/angular-fire-performance.d.ts
npm notice 82B    remote-config/angular-fire-remote-config.d.ts
npm notice 82B    storage/angular-fire-storage.d.ts
npm notice 82B    angular-fire.d.ts
npm notice 2.5kB  angularfire2.d.ts
npm notice 272B   database/list/audit-trail.d.ts
npm notice 1.6kB  auth-guard/auth-guard.d.ts
npm notice 54B    auth-guard/auth-guard.module.d.ts
npm notice 1.3kB  auth/auth.d.ts
npm notice 49B    auth/auth.module.d.ts
npm notice 276B   database/list/changes.d.ts
npm notice 1.1kB  firestore/collection/changes.d.ts
npm notice 2.4kB  firestore/collection-group/collection-group.d.ts
npm notice 4.1kB  firestore/collection/collection.d.ts
npm notice 247B   database/list/create-reference.d.ts
npm notice 253B   database/object/create-reference.d.ts
npm notice 230B   database/list/data-operation.d.ts
npm notice 1.1kB  database/database.d.ts
npm notice 53B    database/database.module.d.ts
npm notice 2.6kB  firestore/document/document.d.ts
npm notice 1.6kB  firebase.app.module.d.ts
npm notice 5.3kB  firestore/firestore.d.ts
npm notice 328B   firestore/firestore.module.d.ts
npm notice 600B   database/observable/fromRef.d.ts
npm notice 518B   firestore/observable/fromRef.d.ts
npm notice 193B   storage/observable/fromTask.d.ts
npm notice 746B   functions/functions.d.ts
npm notice 54B    functions/functions.module.d.ts
npm notice 2.6kB  database/interfaces.d.ts
npm notice 2.8kB  firestore/interfaces.d.ts
npm notice 457B   storage/interfaces.d.ts
npm notice 855B   messaging/messaging.d.ts
npm notice 54B    messaging/messaging.module.d.ts
npm notice 1.4kB  performance/performance.d.ts
npm notice 265B   performance/performance.module.d.ts
npm notice 230B   performance/performance.service.d.ts
npm notice 105B   analytics/public_api.d.ts
npm notice 69B    auth-guard/public_api.d.ts
npm notice 57B    auth/public_api.d.ts
npm notice 297B   database/public_api.d.ts
npm notice 310B   firestore/public_api.d.ts
npm notice 67B    functions/public_api.d.ts
npm notice 67B    messaging/public_api.d.ts
npm notice 111B   performance/public_api.d.ts
npm notice 73B    public_api.d.ts
npm notice 75B    remote-config/public_api.d.ts
npm notice 152B   storage/public_api.d.ts
npm notice 1.1kB  storage/ref.d.ts
npm notice 3.6kB  remote-config/remote-config.d.ts
npm notice 57B    remote-config/remote-config.module.d.ts
npm notice 178B   database/list/remove.d.ts
npm notice 277B   database/list/snapshot-changes.d.ts
npm notice 311B   database/object/snapshot-changes.d.ts
npm notice 328B   database/list/state-changes.d.ts
npm notice 1.1kB  storage/storage.d.ts
npm notice 52B    storage/storage.module.d.ts
npm notice 878B   storage/task.d.ts
npm notice 69B    database/list/utils.d.ts
npm notice 810B   database/utils.d.ts
npm notice === Tarball Details ===
npm notice name:          @angular/fire
npm notice version:       6.0.3
npm notice filename:      angular-fire-6.0.3.tgz
npm notice package size:  438.0 kB
npm notice unpacked size: 2.0 MB
npm notice shasum:        6bb72e36380a8a8c1b3b0bf5261d9ed68950b568
npm notice integrity:     sha512-Lug+WA3Az0AQv[...]uGgZGPXcpHrdQ==
npm notice total files:   270
npm notice
angular-fire-6.0.3.tgz
Done in 81.17s.

Looks like the build still completed besides the (node:9704) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined warning line.

Also, the package.json has this script:

  • "test:node": "npx tsc -p tsconfig.jasmine.json; cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test \"node -r tsconfig-paths/register ./tools/jasmine.js\"",

Once again, had to change the semicolon at the command chain.

  • "test:node": "npx tsc -p tsconfig.jasmine.json && cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test \"node -r tsconfig-paths/register ./tools/jasmine.js\"",

After this small fix, if trying to run all the tests with yarn test:all:

Console Log
$ yarn test:all
yarn run v1.21.1
$ npm run test:node && npm run test:chrome-headless && npm run test:typings && npm run test:build

> @angular/[email protected] test:node D:\Programming\ts_projects\testzone\angularfire
> npx tsc -p tsconfig.jasmine.json && cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test "node -r tsconfig-paths/register ./tools/jasmine.js"

i  emulators: Starting emulators: firestore, database
+  hub: emulator hub started at http://localhost:4400
i  firestore: downloading cloud-firestore-emulator-v1.11.2.jar...

i  firestore: firestore emulator logging to firestore-debug.log
+  firestore: firestore emulator started at http://localhost:8080
i  firestore: For testing set FIRESTORE_EMULATOR_HOST=localhost:8080
i  database: downloading firebase-database-emulator-v4.4.1.jar...

i  database: database emulator logging to database-debug.log
+  database: database emulator started at http://localhost:9000
i  database: For testing set FIREBASE_DATABASE_EMULATOR_HOST=localhost:9000
i  Running script: node -r tsconfig-paths/register ./tools/jasmine.js
Randomized with seed 77638
Started
........F.........F.F...................................................................................................................................

Failures:
1) ng-add error handling universal app should configure firebase.json
  Message:
    Expected $.hosting[0].public = 'dist\dist\ikachu' to equal 'dist/dist/ikachu'.
  Stack:
    Error: Expected $.hosting[0].public = 'dist\dist\ikachu' to equal 'dist/dist/ikachu'.
        at <Jasmine>
        at D:\Programming\ts_projects\testzone\angularfire\dist\out-tsc\jasmine\schematics\ng-add.jasmine.js:560:38
        at <Jasmine>
        at fulfilled (D:\Programming\ts_projects\testzone\angularfire\node_modules\tslib\tslib.js:111:62)

2) universal deployment should create a firebase function
  Message:
    Expected 'dist\package.json' to be 'dist/package.json'.
  Stack:
    Error: Expected 'dist\package.json' to be 'dist/package.json'.
        at <Jasmine>
        at D:\Programming\ts_projects\testzone\angularfire\dist\out-tsc\jasmine\schematics\deploy\actions.jasmine.js:140:32
        at <Jasmine>
        at fulfilled (D:\Programming\ts_projects\testzone\angularfire\node_modules\tslib\tslib.js:111:62)
  Message:
    Expected 'dist\index.js' to be 'dist/index.js'.
  Stack:
    Error: Expected 'dist\index.js' to be 'dist/index.js'.
        at <Jasmine>
        at D:\Programming\ts_projects\testzone\angularfire\dist\out-tsc\jasmine\schematics\deploy\actions.jasmine.js:141:33
        at <Jasmine>
        at fulfilled (D:\Programming\ts_projects\testzone\angularfire\node_modules\tslib\tslib.js:111:62)

3) universal deployment should rename the index.html file in the nested dist
  Message:
    Expected $[0] = 'dist\dist\browser\index.html' to equal 'dist/dist/browser/index.html'.
    Expected $[1] = 'dist\dist\browser\index.original.html' to equal 'dist/dist/browser/index.original.html'.
  Stack:
    Error: Expected $[0] = 'dist\dist\browser\index.html' to equal 'dist/dist/browser/index.html'.
    Expected $[1] = 'dist\dist\browser\index.original.html' to equal 'dist/dist/browser/index.original.html'.
        at <Jasmine>
        at D:\Programming\ts_projects\testzone\angularfire\dist\out-tsc\jasmine\schematics\deploy\actions.jasmine.js:148:29
        at <Jasmine>
        at fulfilled (D:\Programming\ts_projects\testzone\angularfire\node_modules\tslib\tslib.js:111:62)

152 specs, 3 failures
Finished in 93.069 seconds
Randomized with seed 77638 (jasmine --random=true --seed=77638)
!  Script exited unsuccessfully (code 1)
i  emulators: Shutting down emulators.
i  hub: Stopping emulator hub
i  firestore: Stopping firestore emulator
!  firestore emulator has exited upon receiving signal: SIGINT
i  database: Stopping database emulator
!  database emulator has exited upon receiving signal: SIGINT

Error: Script "node -r tsconfig-paths/register ./tools/jasmine.js" exited with code 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @angular/[email protected] test:node: `npx tsc -p tsconfig.jasmine.json && cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test "node -r tsconfig-paths/register ./tools/jasmine.js"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @angular/[email protected] test:node script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\INTEL\AppData\Roaming\npm-cache\_logs\2020-07-03T14_03_46_111Z-debug.log
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I switched to my WSL Ubuntu 18.04 and did the same steps where the build step works out of the box:

wsl-build-success

In this case, was able to build but then tried to ran the test step (yarn test:all) and got few errors regarding missing stuff like as:

  • firebase-tools (pretty easy to install npm install -g firebase-tools)
  • Missing OpenJDK (which is required to run emulators, had no idea about this requirement but installed it).

After this, tests where running until I hit the following errors:

Console Log
$ yarn test:all
$ npm run test:node && npm run test:chrome-headless && npm run test:typings && npm run test:build
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1593783066484-0.3051764170228848/node but npm is using /home/kingdarboja/.nvm/versions/node/v12.18.2/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @angular/[email protected] test:node /mnt/d/Programming/ts_projects/angularfire
> npx tsc -p tsconfig.jasmine.json; cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test "node -r tsconfig-paths/register ./tools/jasmine.js"

i  emulators: Starting emulators: firestore, database
✔  hub: emulator hub started at http://localhost:4400
i  firestore: firestore emulator logging to firestore-debug.log
✔  firestore: firestore emulator started at http://localhost:8080
i  firestore: For testing set FIRESTORE_EMULATOR_HOST=localhost:8080
i  database: database emulator logging to database-debug.log
✔  database: database emulator started at http://localhost:9000
i  database: For testing set FIREBASE_DATABASE_EMULATOR_HOST=localhost:9000
i  Running script: node -r tsconfig-paths/register ./tools/jasmine.js
Randomized with seed 21037
Started
.................
.......................................................................................................................................


152 specs, 0 failures
Finished in 149.014 seconds
Randomized with seed 21037 (jasmine --random=true --seed=21037)
✔  Script exited successfully (code 0)
i  emulators: Shutting down emulators.
i  hub: Stopping emulator hub
i  firestore: Stopping firestore emulator
i  database: Stopping database emulator
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1593783066484-0.3051764170228848/node but npm is using /home/kingdarboja/.nvm/versions/node/v12.18.2/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @angular/[email protected] test:chrome-headless /mnt/d/Programming/ts_projects/angularfire
> npx firebase emulators:exec --project=angularfire2-test "npx ng test --watch=false --browsers=ChromeHeadless"

i  emulators: Starting emulators: firestore, database
✔  hub: emulator hub started at http://localhost:4400
i  firestore: firestore emulator logging to firestore-debug.log
✔  firestore: firestore emulator started at http://localhost:8080
i  firestore: For testing set FIRESTORE_EMULATOR_HOST=localhost:8080
i  database: database emulator logging to database-debug.log
✔  database: database emulator started at http://localhost:9000
i  database: For testing set FIREBASE_DATABASE_EMULATOR_HOST=localhost:9000
i  Running script: npx ng test --watch=false --browsers=ChromeHeadless
Compiling @angular/compiler/testing : es2015 as esm2015
Compiling @angular/animations : es2015 as esm2015
Compiling @angular/core : es2015 as esm2015
Compiling @angular/fire : es2015 as esm2015
Compiling @angular/animations/browser : es2015 as esm2015
Compiling @angular/common : es2015 as esm2015
Compiling @angular/core/testing : es2015 as esm2015
Compiling @angular/platform-browser : es2015 as esm2015
Compiling @angular/common/http : es2015 as esm2015
Compiling @angular/router : es2015 as esm2015
Compiling @angular/common/testing : es2015 as esm2015
Compiling @angular/animations/browser/testing : es2015 as esm2015
Compiling @angular/fire/auth : es2015 as esm2015
Compiling @angular/platform-browser-dynamic : es2015 as esm2015
Compiling @angular/platform-browser/testing : es2015 as esm2015
Compiling @angular/platform-browser/animations : es2015 as esm2015
Compiling @angular/common/http/testing : es2015 as esm2015
Compiling @angular/router/testing : es2015 as esm2015
Compiling @angular/fire/analytics : es2015 as esm2015
Compiling @angular/platform-browser-dynamic/testing : es2015 as esm2015
Compiling @angular/platform-server : es2015 as esm2015
Compiling @angular/fire/auth-guard : es2015 as esm2015
Compiling @angular/fire/database : es2015 as esm2015
Compiling @angular/fire/firestore : es2015 as esm2015
Compiling @angular/fire/functions : es2015 as esm2015
Compiling @angular/fire/messaging : es2015 as esm2015
Compiling @angular/fire/performance : es2015 as esm2015
Compiling @angular/platform-server/testing : es2015 as esm2015
Compiling @angular/fire/remote-config : es2015 as esm2015
Compiling @angular/fire/storage : es2015 as esm2015
10% building 3/3 modules 0 active03 07 2020 08:35:07.515:INFO [karma-server]: Karma v4.4.1 server started at http://0.0.0.0:9876/
03 07 2020 08:35:07.517:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
03 07 2020 08:35:07.523:INFO [launcher]: Starting browser ChromeHeadless
03 07 2020 08:35:07.524:ERROR [launcher]: No binary for ChromeHeadless browser on your platform.
  Please, set "CHROME_BIN" env variable.
10% building 5/5 modules 0 active⚠  Script exited unsuccessfully (code 1)
i  emulators: Shutting down emulators.
i  hub: Stopping emulator hub
i  firestore: Stopping firestore emulator
i  database: Stopping database emulator

Error: Script "npx ng test --watch=false --browsers=ChromeHeadless" exited with code 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @angular/[email protected] test:chrome-headless: `npx firebase emulators:exec --project=angularfire2-test "npx ng test --watch=false --browsers=ChromeHeadless"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @angular/[email protected] test:chrome-headless script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kingdarboja/.npm/_logs/2020-07-03T13_35_08_769Z-debug.log
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

The above error says No binary for ChromeHeadless browser on your platform. and also Please, set "CHROME_BIN" env variable..
Tried to setup it by pointing to chrome.exe inside my program files (in my C: hard drive):

  • export CHROME_BIN='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'

And ran the yarn test:all command again:

Console log
yarn run v1.22.4
$ npm run test:node && npm run test:chrome-headless && npm run test:typings && npm run test:build
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1593783521850-0.5555980228759403/node but npm is using /home/kingdarboja/.nvm/versions/node/v12.18.2/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @angular/[email protected] test:node /mnt/d/Programming/ts_projects/angularfire
> npx tsc -p tsconfig.jasmine.json; cp ./dist/packages-dist/schematics/versions.json ./dist/out-tsc/jasmine/schematics && npx firebase emulators:exec --project=angularfire2-test "node -r tsconfig-paths/register ./tools/jasmine.js"

i  emulators: Starting emulators: firestore, database
✔  hub: emulator hub started at http://localhost:4400
i  firestore: firestore emulator logging to firestore-debug.log
✔  firestore: firestore emulator started at http://localhost:8080
i  firestore: For testing set FIRESTORE_EMULATOR_HOST=localhost:8080
i  database: database emulator logging to database-debug.log
✔  database: database emulator started at http://localhost:9000
i  database: For testing set FIREBASE_DATABASE_EMULATOR_HOST=localhost:9000
i  Running script: node -r tsconfig-paths/register ./tools/jasmine.js
Randomized with seed 63531
Started
........................................................................................................................................................


152 specs, 0 failures
Finished in 44.037 seconds
Randomized with seed 63531 (jasmine --random=true --seed=63531)
✔  Script exited successfully (code 0)
i  emulators: Shutting down emulators.
i  hub: Stopping emulator hub
i  firestore: Stopping firestore emulator
i  database: Stopping database emulator
npm WARN lifecycle The node binary used for scripts is /tmp/yarn--1593783521850-0.5555980228759403/node but npm is using /home/kingdarboja/.nvm/versions/node/v12.18.2/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.

> @angular/[email protected] test:chrome-headless /mnt/d/Programming/ts_projects/angularfire
> npx firebase emulators:exec --project=angularfire2-test "npx ng test --watch=false --browsers=ChromeHeadless"

i  emulators: Starting emulators: firestore, database
✔  hub: emulator hub started at http://localhost:4400
i  firestore: firestore emulator logging to firestore-debug.log
✔  firestore: firestore emulator started at http://localhost:8080
i  firestore: For testing set FIRESTORE_EMULATOR_HOST=localhost:8080
i  database: database emulator logging to database-debug.log
✔  database: database emulator started at http://localhost:9000
i  database: For testing set FIREBASE_DATABASE_EMULATOR_HOST=localhost:9000
i  Running script: npx ng test --watch=false --browsers=ChromeHeadless
10% building 1/1 modules 0 active03 07 2020 08:40:13.352:INFO [karma-server]: Karma v4.4.1 server started at http://0.0.0.0:9876/
03 07 2020 08:40:13.354:INFO [launcher]: Launching browsers ChromeHeadless with concurrency unlimited
03 07 2020 08:40:13.358:INFO [launcher]: Starting browser ChromeHeadless
03 07 2020 08:41:13.360:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
03 07 2020 08:41:13.366:INFO [launcher]: Trying to start ChromeHeadless again (1/2).
03 07 2020 08:42:13.368:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
03 07 2020 08:42:13.371:INFO [launcher]: Trying to start ChromeHeadless again (2/2).
03 07 2020 08:43:13.372:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
03 07 2020 08:43:13.377:ERROR [launcher]: ChromeHeadless failed 2 times (timeout). Giving up.
⚠  Script exited unsuccessfully (code 1)
i  emulators: Shutting down emulators.
i  hub: Stopping emulator hub
i  firestore: Stopping firestore emulator
i  database: Stopping database emulator

Error: Script "npx ng test --watch=false --browsers=ChromeHeadless" exited with code 1
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @angular/[email protected] test:chrome-headless: `npx firebase emulators:exec --project=angularfire2-test "npx ng test --watch=false --browsers=ChromeHeadless"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @angular/[email protected] test:chrome-headless script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kingdarboja/.npm/_logs/2020-07-03T13_43_17_429Z-debug.log
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

I feel like this error is caused by WSL itself but not sure at all. In any case, I assume the most important tests are being done before these chrome-related ones, right? If that's the case, I could run the test:all command excluding the test:chrome script?

Expected behavior

I should be able to run all tests without error, also the OS shouldn't matter while trying to setup the project for contributing.

Actual behavior

Several errors trying to setup the project even on WSL.

This is a WIP issue, I am running right now the same steps to copy and paste the error messages for each platform I tested it so please do not close this issue. Thank you 😄

SIDE NOTES

  • Should be good to address on the package.json the engines field, so users know which NodeJS version is required to setup the repo for contributions.
  • Another thing should be updating the TypeScript version to latest (3.9) as Angular 9 support its and Angular 10 dropped support for TS 3.8

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions