简体   繁体   中英

Error: Cannot find module 'lodash' in angular-cli?

OS

Mac OSX El Capitan

Versions

angular-cli: 1.0.0-beta.8 , node: 6.2.0 , os: darwin x64

Description

I tried to add lodash library in angular-cli project:

  • npm install --save lodash
  • typings install lodash --global --save

Successfully installed in node_modules . 👍

system-config.ts :

/** Map relative paths to URLs. */
const map: any = {
  'lodash': 'vendor/lodash',
};

/** User packages configuration. */
const packages: any = {
  'lodash': {
    format: 'cjs',
    defaultExtension: 'js',
    main: 'core.js'
  }
};

angular-cli-build.js

var Angular2App = require('angular-cli/lib/broccoli/angular2-app');

module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      'systemjs/dist/system-polyfills.js',
      'systemjs/dist/system.src.js',
      'zone.js/dist/**/*.+(js|js.map)',
      'es6-shim/es6-shim.js',
      'reflect-metadata/**/*.+(ts|js|js.map)',
      'rxjs/**/*.+(js|js.map)',
      '@angular/**/*.+(js|js.map)',
      'lodash/**/*.+(js|js.map)'
    ]
  });
};

And then I tried to import in a service in different ways:

  1. import { chunk, intersection, zip } from 'lodash';

     Error: Cannot find module 'lodash' 
  2. declare var _; const {chunk, intersection, zip} = _;

      Error: Cannot find name 'chunk' Cannot find name 'intersection' Cannot find name 'zip' 

I don't found the way to use lodash ...

I did something wrong? I miss something? Is there an issue?

Thank you very much,

Aral.


Similar questions (but don't answer my question) :

Official docs:

Change system-config.ts to:

const map: any = {
  'lodash': 'vendor/lodash',
};

const packages: any = {
  'lodash': {
    format: 'cjs',
    defaultExtension: 'js',
    main: 'index.js'
  }
};

And then import it as:

import 'lodash';
declare var _;

Finally use it as:

_.chunk();

@ codef0rmer答案很好,但是如果你想要特定的lodash依赖而不是整个库,这里有一个例子来回答如何做到这一点: https//stackoverflow.com/a/38317093/1426570

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM