使用systemjs.config.js导入lodash的正确方法是什么。 由于lodash,我的AOT失败了。 我的项目是基于https://github.com/filipesilva/angular-quickstart-lib
的组件库我在package.json中使用 “lodash”:“4.17.4” 和“@ types / lodash”:“4.14.68”
以下是我的systemjs.config.js
```
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
// other libraries
'rxjs': 'npm:rxjs',
'primeng': 'npm:primeng',
'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
'angular-quickstart-lib': 'npm:angular-quickstart-lib/bundles/angular-quickstart-lib.umd.js',
'lodash': 'npm:lodash/lodash.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
defaultExtension: 'js',
meta: {
'./*.js': {
loader: 'systemjs-angular-loader.js'
}
}
},
rxjs: {
defaultExtension: 'js'
},
'primeng': {defaultExtension: 'js'},
'angular-quickstart-lib': {
main: 'index.js',
defaultExtension: 'js',
meta: {
'./*.js': {
loader: 'systemjs-angular-loader.js'
}
}
},
'lodash':{
main: 'index.js',
defaultExtension: 'js'
}
}
});
})(this);
```
我按如下方式导入lodash
import * as _ from 'lodash';
但是AOT我得到了以下错误。
(node:5810) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: 'cloneDeep' is not exported by node_modules/lodash/lodash.js
(node:5810) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
请帮忙。
答案 0 :(得分:0)
非常确定你的配置映射错误的是lodash,而不是:
'lodash': 'npm:lodash/lodash.js'
应该是:
'lodash': 'npm:lodash/index.js'
这就是index.js里面的内容
module.exports = require('./lodash');