Javascript D3带角度cli
我尝试在D3中使用angular cli。 之后 我在node_模块中 在Javascript D3带角度cli,javascript,angularjs,d3.js,angular-cli,Javascript,Angularjs,D3.js,Angular Cli,我尝试在D3中使用angular cli。 之后 我在node_模块中 在打字文件夹中 angular cli build.js module.exports = function(defaults) { var app = new Angular2App(defaults, { vendorNpmFiles: ['d3/d3.js'] }); return app.toTree(); }; module.exports = function(defaults) {
打字
文件夹中
angular cli build.js
module.exports = function(defaults) {
var app = new Angular2App(defaults, {
vendorNpmFiles: ['d3/d3.js']
});
return app.toTree();
};
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...,
'd3/build/*.js'
]
});
};
map['d3'] = 'vendor/d3/build';
packages['d3'] = {
main: 'd3',
format: 'global'
};
import * as d3 from 'd3';
index.html
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
},
d3: {
'd3': 'vendor/d3/d3.js'
}
});
在条形图
指令中,我尝试导入d3
import {Directive} from 'angular2/core';
import d3 from 'd3';
@Directive({
selector: 'bar-graph',
providers: [],
host: {},
})
export class BarGraph {
constructor() {
console.log(d3);
}
}
但该应用程序从未加载,而且console.log
表示它试图获取localhost:4200/d3
我也有同样的问题,我在Angular(2.0.0-alpha.27)的旧版本中找到了这个示例,但可能会有所帮助
我认为您需要在
映射
块中添加d3条目:
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
},
map: { // <-----
'd3': 'vendor/d3/d3.js'
}
});
System.config({
套餐:{
应用程序:{
格式:'寄存器',
defaultExtension:'js'
}
},
map:{/我开始按照下面的步骤工作
首次安装:
npm install d3 --save
然后将d3添加到angular cli build.js
,如下所示:
// Angular-CLI build configuration
// This file lists all the node_modules files that will be used in a build
// Also see https://github.com/angular/angular-cli/wiki/3rd-party-libs
/* global require, module */
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)',
'd3/build/d3.js'
]
});
};
并修改您的系统配置.ts
:
/***********************************************************************************************
* User Configuration.
**********************************************************************************************/
/** Map relative paths to URLs. */
const map: any = {
'moment': 'vendor/moment/moment.js',
"d3" : "vendor/d3/build/d3.js",
'jquery': 'vendor/jquery/dist/jquery.js'
};
/** User packages configuration. */
const packages: any = {
'moment': { format: 'cjs'},
'jquery': { format: 'global'},
"d3": { format: 'global'},
};
要确保systemJS加载模块,请向index.ts
添加导入,并删除d3
变量,该变量用于避免编译问题:
import 'd3'
declare var d3;
这里有一个有效的答案
npm install d3 --save
angular cli build.js
module.exports = function(defaults) {
var app = new Angular2App(defaults, {
vendorNpmFiles: ['d3/d3.js']
});
return app.toTree();
};
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...,
'd3/build/*.js'
]
});
};
map['d3'] = 'vendor/d3/build';
packages['d3'] = {
main: 'd3',
format: 'global'
};
import * as d3 from 'd3';
系统配置.js
module.exports = function(defaults) {
var app = new Angular2App(defaults, {
vendorNpmFiles: ['d3/d3.js']
});
return app.toTree();
};
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...,
'd3/build/*.js'
]
});
};
map['d3'] = 'vendor/d3/build';
packages['d3'] = {
main: 'd3',
format: 'global'
};
import * as d3 from 'd3';
应用程序组件.ts
module.exports = function(defaults) {
var app = new Angular2App(defaults, {
vendorNpmFiles: ['d3/d3.js']
});
return app.toTree();
};
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
...,
'd3/build/*.js'
]
});
};
map['d3'] = 'vendor/d3/build';
packages['d3'] = {
main: 'd3',
format: 'global'
};
import * as d3 from 'd3';
你找到答案了吗