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
库:
npm install --save lodash
typings install lodash --global --save
已成功安装 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)'
]
});
};
然后我尝试以不同的方式导入服务:
import { chunk, intersection, zip } from 'lodash';
Error: Cannot find module 'lodash'
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
依赖项而不是整个库,这里有一个关于如何做到这一点的示例的答案:
OS
Mac OSX 埃尔卡皮坦
版本
angular-cli: 1.0.0-beta.8
, node: 6.2.0
, os: darwin x64
描述
我尝试在 angular-cli 项目中添加 lodash
库:
npm install --save lodash
typings install lodash --global --save
已成功安装 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)'
]
});
};
然后我尝试以不同的方式导入服务:
import { chunk, intersection, zip } from 'lodash';
Error: Cannot find module 'lodash'
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
依赖项而不是整个库,这里有一个关于如何做到这一点的示例的答案: