使用angular2-logger的Angular 5项目出错

时间:2017-11-09 03:10:43

标签: angular angular-cli angular5

我在Angular CLI项目中使用angular2-logger版本0.6.0。当我尝试升级到Angular CLI 1.5和Angular 5时,发生以下错误

ERROR in ./node_modules/angular2-logger/app/core/level.ts
Module build failed: Error: C:\test\sample-5\sample\node_module\angular2-logger\app\core\level.ts is not part of the compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.

at AngularCompilerPlugin.getCompiledFile (C:\test\sample-5\sample\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:624:23)
at plugin.done.then (C:\test\sample-5\sample\node_modules\@ngtools\webpack\src\loader.js:467:39)
at <anonymous>
@ ./node_modules/angular2-logger/core.js 6:9-36
@ ./src/app/app.module.ts
@ ./src/main.ts
@ multi webpack-dev-server/client?http://0.0.0.0:0 ./src/main.ts

这是app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { Logger } from 'angular2-logger/core';

import { AppComponent } from './app.component';


@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [Logger],
  bootstrap: [AppComponent]
})
export class AppModule { }

此示例项目由ng new sample创建,因此每个设置都是Angular CLI默认设置。

3 个答案:

答案 0 :(得分:2)

我找到了一个临时解决方案。

转到 node_modules \ angular2-logger \ app \ core ,然后删除所有.ts文件。

更多信息: https://github.com/code-chunks/angular2-logger/issues/175

答案 1 :(得分:0)

Temprory Solution对我有用。
已安装的软件包有一个分区node_modules/angular2-logger/dist/es6/

node_modules/angular2-logger/package.json main中的

设置为
"main": "./dist/cjs/core.js",

将此更改为
"main": "./dist/es6/core.js",

您可能有一个不同的目录结构,因为在安装过程中会创建dist。因此,目标是将主要指向已编译的core.js文件。

Logger的所有导入语句更改为

import { Logger } from 'angular2-logger';

编译并运行并保持快乐。

我不知道这是一个错字或是否有决定,但这对于ng build --prod

也是如此

答案 2 :(得分:0)

链接的angular2-logger问题:

  

由于错误状态,您需要包括对Typescript的引用   由angular2-logger导入的文件,以便TypeScript知道   他们。编辑tsconfig.json(如果使用的是tsconfig.app.json,   cli)以包含以下代码段:

"include": [
    "../node_modules/angular2-logger/app/core/level.ts",
    "../node_modules/angular2-logger/app/core/logger.ts",
    "../node_modules/angular2-logger/app/core/providers.ts",
    "**/*.ts"
],

*根据您的node_modules和tsconfig.json位置,路径可能会更改。我不得不这样使用:

"node_modules/angular2-logger/app/core/level.ts",

由于我不是通配符爱好者,因此我删除了最后一行“ ** / *。ts”,并对位于src正下方的文件产生了错误。所以我最终在列表上列出了那些。这是对我有用的结果:

  "include": [
    "node_modules/angular2-logger/app/core/level.ts",
    "node_modules/angular2-logger/app/core/logger.ts",
    "node_modules/angular2-logger/app/core/providers.ts",
    "src/main.ts",
    "src/polyfills.ts"
  ]