错误:在angular-cli中找不到模块'lodash'?

Ara*_*oca 10 angular-cli angular

OS

Mac OSX El Capitan

版本

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'
  }
};
Run Code Online (Sandbox Code Playgroud)

角-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)'
    ]
  });
};
Run Code Online (Sandbox Code Playgroud)

然后我尝试以不同的方式导入服务:

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

    Error: Cannot find module 'lodash'
    
    Run Code Online (Sandbox Code Playgroud)
  2. declare var _; const {chunk, intersection, zip} = _;

     Error: Cannot find name 'chunk'
            Cannot find name 'intersection'
            Cannot find name 'zip'
    
    Run Code Online (Sandbox Code Playgroud)

我没有找到使用方式lodash......

我做错事情了?我想念什么?有问题吗?

非常感谢你,

咸海.


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

官方文档:

cod*_*mer 8

更改system-config.ts到:

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

const packages: any = {
  'lodash': {
    format: 'cjs',
    defaultExtension: 'js',
    main: 'index.js'
  }
};
Run Code Online (Sandbox Code Playgroud)

然后将其导入为:

import 'lodash';
declare var _;
Run Code Online (Sandbox Code Playgroud)

最后用它作为:

_.chunk();
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

2958 次

最近记录:

6 年,10 月 前