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

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

OS

Mac OSX 埃尔卡皮坦

版本

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

描述

我尝试在 angular-cli 项目中添加 lodash 库:

已成功安装 node_modules

系统-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...

我做错了什么?我错过了什么?有问题吗?

非常感谢,

咸海


类似问题(但不要回答我的问题)

官方文档:

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();

@codef0rmer 的回答很好,但是如果你想要特定的 lodash 依赖项而不是整个库,这里有一个关于如何做到这一点的示例的答案: