Ошибка: не удается найти модуль «lodash» в angular-cli?

ОС

Mac OS X Эль-Капитан

Версии

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

Описание

Я попытался добавить библиотеку lodash в проект angular-cli:

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

Успешно установлено в 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)'
    ]
  });
};

А то пробовал импортировать в сервис разными способами:

  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'
    

Я не нашел способ использовать lodash...

Я сделал что-то не так? Я что-то пропустил? Есть проблема?

Большое тебе спасибо,

Арал.


Похожие вопросы (но не отвечайте на мой вопрос):

Официальные документы:


person Aral Roca    schedule 26.06.2016    source источник
comment
вы можете увидеть этот ответ stackoverflow.com/questions/37712677/   -  person pd farhad    schedule 30.06.2016


Ответы (2)


Измените system-config.ts на:

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

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

А затем импортируйте его как:

import 'lodash';
declare var _;

Наконец, используйте его как:

_.chunk();
person codef0rmer    schedule 27.06.2016
comment
import 'lodash'; declare var _; У меня сработало - даже формат в пакетах не задавал. Синтаксис import * as _ from 'lodash'; отлично работал на Plunker... какое объяснение? - person ootwch; 07.07.2016
comment
@ootwch Ссылка на Plunkr? - person codef0rmer; 07.07.2016
comment
Вот, пожалуйста, этот плункер не предназначен для демонстрации этого, это всего лишь один из моих экспериментов. plnkr.co/edit/kAcaV16mlXrso8jWpq8C?p=preview - person ootwch; 08.07.2016

Ответ @codef0rmer хорош, но если вам нужны конкретные lodash зависимости, а не вся библиотека, вот ответ с примером того, как это сделать: https://stackoverflow.com/a/38317093/1426570

person Urigo    schedule 11.07.2016