Mac OSX El Capitan
angular-cli: 1.0.0-beta.8, node: 6.2.0,os: darwin x64
我试图lodash在angular-cli项目中添加库:
npm install --save lodashtypings 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, …Run Code Online (Sandbox Code Playgroud) 在Angular 2中加载单个节点模块,在wiki中很好地描述了一个angular-cli bootstraped项目.只是好奇,如何在一个用angular-cli引导的项目中很好地加载一个更复杂的节点模块?
例如angular2-apollo依赖于几个子依赖,如apollo-client,graphql,lodash,......
我添加了节点模块 angular-cli-build.js
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
'...',
'angular2-apollo/**'
]
});
};
Run Code Online (Sandbox Code Playgroud)
并注册了节点模块插件system-config.js与
const barrels: string[] = [
// ...
// Thirdparty barrels.
'rxjs',
'angular2-apollo',
// App specific barrels.
// ...
];
// ...
// Apply the CLI SystemJS configuration.
System.config({
map: {
'@angular': 'vendor/@angular',
'rxjs': 'vendor/rxjs',
'angular2-apollo':'vendor/angular2-apollo/build/src',
'main': 'main.js',
},
packages: cliSystemConfigPackages
});
Run Code Online (Sandbox Code Playgroud)
然而,这只是加载angular2-apollo.angular2-apollo的子依赖性没有得到加载.如何在angular-cli bootstraped项目中加载system.js的子依赖项?