我有一个角5应用程序,以前运行在角CLI 1.2.8,一切都很好。在升级到1.3之后(在我到1.5.4的路上),当我访问localhost:4200时,当我得到一个NullInjectorError: No provider for Http!时,外部npm链接libary似乎出现了问题。
当我将HttpModule添加到共享库模块时,错误就消失了,但是我得到了额外的提供程序错误。我期待共享库像以前一样使用主应用程序中的模块,而不是共享库模块。在本例中,共享库具有依赖于HttpModule的角服务,但是shard-lib不导入HttpModule。我使用的主要项目是导入HttpModule。
我的tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"types": [ "node", "jasmine" ],
"lib": [
"es2016",
"dom"
],
"paths": {
"rxjs/*": [
"node_modules/rxjs/*"
],
"@angular/*": [
"node_modules/@angular/*"
]
}
}
}我的tsconfig.app.json:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"baseUrl": "",
"types": []
},
"include": [
"./**/*.ts",
"../node_modules/shared-lib/src/**/*.ts",
"../node_modules/shared-lib/index.ts",
"../node_modules/shared-lib/shared-lib.ts"
],
"exclude": [
"test.ts",
"**/*.spec.ts",
"../node_modules/shared-lib/**/*.spec.ts"
],
"typeRoots": [
"node_modules/@types"
],
"types": [ "node" ]
}更新:我发现在删除了共享库(Shared node_modules )中的@文件夹后,该项目可以工作。我不知道为什么他们在tsconfig.json中的路径对象没有覆盖到我的项目的node_modules的使用。
发布于 2017-11-29 19:51:29
我遇到了一个与当前节点版本不兼容的角/cli版本类似的问题。问题在于升级依赖项。这通常发生在您从较低版本的角升级到任何其他更高版本。您可以尝试以下步骤:
npm outdated --> To list latest and current package details in local application.
npm update --> to update the local packages.如果仍然无法工作,请尝试删除“node_modules”文件夹并安装install的依赖项:
npm install然后,您可以检查所有包,包括cli是否都没有过时。
发布于 2017-11-30 00:06:00
会不会是因为不推荐的HttpModule而产生某种冲突呢?对于最近的版本,您应该使用HttpClientModule,因为不推荐使用HttpModule。
https://stackoverflow.com/questions/47558776
复制相似问题