Matthew Flynn
Matthew Flynn

Reputation: 3941

Error running Angular 5 SPA in Visual Studio 2017

When I try to run my SPA which is referencing Angular 5 with .net core 2, I receive the following error message;

An unhandled exception occurred while processing the request.
NodeInvocationException: StaticInjectorError(e)[s -> i]: 
StaticInjectorError(Platform: core)[s -> i -> InjectionToken DocumentToken]: 
Right-hand side of 'instanceof' is not an object
TypeError: StaticInjectorError(e)[s -> i]: 
StaticInjectorError(Platform: core)[s -> i -> InjectionToken DocumentToken]: 
Right-hand side of 'instanceof' is not an object
at bt (C:\....\ClientApp\dist\main-server.js:92:81462)
at vt (C:\....\ClientApp\dist\main-server.js:92:81337)
at nn (C:\....\ClientApp\dist\main-server.js:92:104108)
at nn (C:\....\ClientApp\dist\main-server.js:92:104227)
at rn (C:\....\ClientApp\dist\main-server.js:92:103904)
at Ce (C:\....\ClientApp\dist\main-server.js:92:77511)
at We.insertToken (C:\....\ClientApp\dist\main-server.js:92:80723)
at C:\....\ClientApp\dist\main-server.js:92:84001
at Rt (C:\....\ClientApp\dist\main-server.js:92:84016)
at Qe (C:\....\ClientApp\dist\main-server.js:92:78997)

Can anyone point out what this means,a sI have tried looking on the internet for a solution with no success.

My packages.json file is as follows;

   {
      "name": "Services.Public",
      "version": "0.0.0",
      "license": "MIT",
      "scripts": {
        "ng": "ng",
        "start": "ng serve",
        "build": "ng build --prod",
        "test": "ng test",
        "lint": "ng lint",
        "e2e": "ng e2e"
      },
      "private": true,
      "dependencies": {
        "@angular/animations": "^5.0.0",
        "@angular/common": "^5.0.0",
        "@angular/compiler": "^5.0.0",
        "@angular/core": "^5.0.0",
        "@angular/forms": "^5.0.0",
        "@angular/http": "^5.0.0",
        "@angular/platform-browser": "^5.0.0",
        "@angular/platform-browser-dynamic": "^5.0.0",
        "@angular/router": "^5.0.0",
        "bootstrap": "4.0.0",
        "core-js": "^2.5.3",
        "jquery": "3.2.1",
        "popper.js": "1.14.1",
        "rxjs": "^5.5.2",
        "zone.js": "^0.8.20"
      },
      "devDependencies": {
        "@angular/cli": "^1.6.3",
        "@angular/compiler-cli": "^5.0.0",
        "@angular/language-service": "^5.0.0",
        "@angular/platform-server": "^5.0.0",
        "@angular-devkit/core": "^0.4.6",
        "@ngtools/webpack": "^1.10.2",
        "@types/jasmine": "~2.5.53",
        "@types/jasminewd2": "~2.0.2",
        "@types/node": "~6.0.60",
        "@types/webpack-env": "1.13.5",
        "angular2-router-loader": "0.3.5",
        "angular2-template-loader": "0.6.2",
        "aspnet-prerendering": "^3.0.1",
        "aspnet-webpack": "^2.0.3",
        "awesome-typescript-loader": "4.0.1",
        "codelyzer": "^4.0.1",
        "extract-text-webpack-plugin": "v4.0.0-alpha.0",
        "es6-shim": "0.35.3",
        "event-source-polyfill": "0.0.9",
        "html-loader": "0.4.5",
        "html-webpack-plugin": "^3.0.7",
        "jasmine-core": "~2.6.2",
        "jasmine-spec-reporter": "~4.1.0",
        "karma": "^1.7.1",
        "karma-chrome-launcher": "~2.1.1",
        "karma-cli": "~1.0.1",
        "karma-coverage-istanbul-reporter": "^1.2.1",
        "karma-jasmine": "^1.1.1",
        "karma-jasmine-html-reporter": "^0.2.2",
        "protractor": "~5.1.2",
        "to-string-loader": "1.1.5",
        "ts-node": "~3.2.0",
        "tslint": "~5.7.0",
        "typescript": "^2.7.2",
        "webpack": "^4.2.0",
        "webpack-addons": "^1.1.5",
        "webpack-cli": "^2.0.12",
        "webpack-hot-middleware": "2.21.2",
        "webpack-merge": "4.1.2"
      }
    }

The output I get from running webpack --config ./webpack.config.vendor.js is;

    Hash: b39fc415a48442d6bfc65aba8dd7f82786abce7b
    Version: webpack 4.2.0
    Child
        Hash: b39fc415a48442d6bfc6
        Time: 15305ms
        Built at: 2018-3-22 14:08:33
             Asset      Size  Chunks                    Chunk Names
         vendor.js  1.12 MiB       0  [emitted]  [big]  vendor
        vendor.css   174 KiB       0  [emitted]         vendor
        Entrypoint vendor [big] = vendor.js vendor.css

        WARNING in ./node_modules/@angular/core/esm5/core.js
        6558:15-36 Critical dependency: the request of a dependency is an expression
         @ ./node_modules/@angular/core/esm5/core.js
         @ dll vendor

        WARNING in ./node_modules/@angular/core/esm5/core.js
        6578:15-102 Critical dependency: the request of a dependency is an expression
         @ ./node_modules/@angular/core/esm5/core.js
         @ dll vendor

        WARNING in ./node_modules/@angular/core/esm5/core.js
        System.import() is deprecated and will be removed soon. Use import() instead.
        For more info visit https://webpack.js.org/guides/code-splitting/
         @ dll vendor 6558:15-36

        WARNING in ./node_modules/@angular/core/esm5/core.js
        System.import() is deprecated and will be removed soon. Use import() instead.
        For more info visit https://webpack.js.org/guides/code-splitting/
         @ dll vendor 6578:15-102

        WARNING in configuration
        The 'mode' option has not been set. Set 'mode' option to 'development' or 'production' to enable defaults for this environment. 

        WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
        This can impact web performance.
        Assets: 
          vendor.js (1.12 MiB)

        WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
        Entrypoints:
          vendor (1.29 MiB)
              vendor.js
              vendor.css


        WARNING in webpack performance recommendations: 
        You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
        For more info visit https://webpack.js.org/guides/code-splitting/
        Child extract-text-webpack-plugin node_modules/extract-text-webpack-plugin/dist node_modules/css-loader/index.js!node_modules/bootstrap/dist/css/bootstrap.css:
            Entrypoint undefined = extract-text-webpack-plugin-output-filename
    Child
        Hash: 5aba8dd7f82786abce7b
        Time: 20483ms
        Built at: 2018-3-22 14:08:38
            Asset      Size  Chunks             Chunk Names
        vendor.js  1.27 MiB       0  [emitted]  vendor
        Entrypoint vendor = vendor.js

        WARNING in ./node_modules/@angular/core/bundles/core.umd.js
        System.import() is deprecated and will be removed soon. Use import() instead.
        For more info visit https://webpack.js.org/guides/code-splitting/
         @ dll vendor 6596:15-36

        WARNING in ./node_modules/@angular/core/bundles/core.umd.js
        System.import() is deprecated and will be removed soon. Use import() instead.
        For more info visit https://webpack.js.org/guides/code-splitting/
         @ dll vendor 6616:15-102

        WARNING in configuration
        The 'mode' option has not been set. Set 'mode' option to 'development' or 'production' to enable defaults for this environment. 

So only warnings, and the output of running the `webpack` command is;

    webpack : (node:7008) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
    At line:1 char:1
    + webpack
    + ~~~~~~~
        + CategoryInfo          : NotSpecified: ((node:7008) Dep....hooks` instead:String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError

    Hash: 58a796a24931610be875f5c7580494b98900c7b1
    Version: webpack 4.2.0
    Child
        Hash: 58a796a24931610be875
        Time: 8565ms
        Built at: 2018-3-22 14:10:02
                     Asset      Size  Chunks             Chunk Names
            main-client.js    28 KiB       0  [emitted]  main-client
        main-client.js.map  99.8 KiB       0  [emitted]  main-client
        Entrypoint main-client = main-client.js main-client.js.map

        WARNING in configuration
        The 'mode' option has not been set. Set 'mode' option to 'development' or 'production' to enable defaults for this environment. 
    Child
        Hash: f5c7580494b98900c7b1
        Time: 8333ms
        Built at: 2018-3-22 14:10:02
                 Asset      Size  Chunks             Chunk Names
        main-server.js  2.73 MiB       0  [emitted]  main-server
        Entrypoint main-server = main-server.js

        WARNING in configuration
        The 'mode' option has not been set. Set 'mode' option to 'development' or 'production' to enable defaults for this environment. 

I have tried cleaning the cache and reinstalling all modules with no success. Thank you in advance, and any help is appreciated.

Upvotes: 2

Views: 509

Answers (1)

Xoadra
Xoadra

Reputation: 353

Are you using UseWebpackDevMiddleware() in your Setup.cs file?

I ran into this issue just recently, and it appears to be related to using that configuration. Try commenting it out and see what happens.

UseWebpackDevMiddleware() runs on aspnet-webpack which has not been updated to be compatible with Webpack 4. You'll want to hold off on using it until it gets updated.

Upvotes: 4

Related Questions