abhi
abhi

Reputation: 379

Importing lodash into app.ts file

I am trying lodash uniqBy function to filter in my Angular 2 application. But, I am getting error in import statement import * as _ from 'lodash';. I tried import _ from 'lodash';, import _ from 'lodash/lodash';, import * as _ from 'lodash/lodash'; also, but getting the same error i.e. Cannot find module 'lodash'. After checking angular2 failing lodash import, and Importing lodash into angular2 + typescript application, I mapped lodash to my system.config like so

<script>
        System.config({
        packages: {        
          app: {
            format: 'register',
            defaultExtension: 'js'
          }
        },
        map: {
          lodash: 'node_modules/lodash/lodash.js'
        }
      });
      System.import('app/main')
            .then(null, console.error.bind(console));
    </script>

I have also added lodash to the dependencies in my package.json file like so

"dependencies": {
        "angular2": "2.0.0-beta.15",
        "systemjs": "0.19.26",
        "es6-shim": "^0.35.0",
        "reflect-metadata": "0.1.2",
        "rxjs": "5.0.0-beta.2",
        "zone.js": "0.6.10",
        "bootstrap": "^3.3.6",
        "lodash":"^4.13.1"
    }
After npm install, I see lodash.js file here-->node_modules/lodash/lodash.js, but even then I am getting the error Cannot find module 'lodash'.

Please share your thoughts on what might be going wrong here.

Upvotes: 0

Views: 1328

Answers (1)

Thierry Templier
Thierry Templier

Reputation: 202216

In fact, there are two parts in TypeScript application:

  • The compilation part with type checking
  • The execution part when code is actually executed

By referencing the Lodash library in the SystemJS configuration, you tackle the execution part only. Your error comes from the compilation part since you missed to install typings for the Lodash library.

You could try the following:

$ typings install lodash --ambient

Upvotes: 0

Related Questions