【发布时间】:2017-07-09 13:54:56
【问题描述】:
我已经用 d3 和 Angular 2 实现了一个通用图表组件。然后将它发布到本地 npm 存储库中,这样任何人都可以通过运行 npm 在他们的 Angular 项目中使用该图表组件安装 my-chart 命令。
我创建了一个基本的 Angular 2 项目来重用我的图表组件。然后运行 npm install my-chart --save,它会将 "@my/my-chart": "^1.0.0" 添加到 package.json 中。但是运行 ng serve 出现问题,在我的控制台上提示以下错误。
Module not found: Error: Can't resolve 'd3' in '...\node_modules\@my\my-chart'
我需要在我的 Angular 项目中安装 D3 吗?但我认为当我们运行 npm install my-chart 时,最好将 d3 与图表组件捆绑在一起。
什么是最好的?
已发布包的package.json 文件:
{
"name": "@my/my-chart",
"version": "1.0.2",
"license": "MIT",
"angular-cli": {},
"author": "rosew",
"main": "./index.js",
"keywords": [
"button",
"card"
]
}
消费包的package.json文件:
"dependencies": {
"@angular/common": "2.4.6",
"@angular/compiler": "2.4.6",
"@angular/core": "2.4.6",
"@angular/forms": "2.4.6",
"@angular/http": "2.4.6",
"@angular/platform-browser": "2.4.6",
"@angular/platform-browser-dynamic": "2.4.6",
"@angular/router": "3.4.6",
"core-js": "2.4.1",
"rxjs": "5.0.1",
"ts-helpers": "1.1.2",
"zone.js": "0.7.6",
"@my/core": "1.1.176",
"@my/my-button": "^1.0.9",
"@my/my-chart": "^1.0.1"
},
"devDependencies": {
"@angular/cli": "1.0.0-beta.31",
"@angular/compiler-cli": "2.4.6",
"@types/jasmine": "2.5.38",
"@types/node": "6.0.42",
"codelyzer": "2.0.0-beta.1",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "2.5.0",
"karma": "1.2.0",
"karma-chrome-launcher": "2.0.0",
"karma-cli": "1.0.1",
"karma-jasmine": "1.0.2",
"karma-remap-istanbul": "0.2.1",
"protractor": "4.0.13",
"ts-node": "1.2.1",
"tslint": "4.4.2",
"typescript": "2.0.3"
}
【问题讨论】:
-
你能把发布包和消费包(特别是依赖部分)的 package.json 文件发布到 sn-ps 吗
-
@TimLewis 我已经发布了它们。你能查一下吗?
标签: angularjs node.js angular d3.js npm