4

我在 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 默认的。

4

3 回答 3

2

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

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

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

于 2017-11-13T13:20:54.103 回答
0

从链接的 angular2-logger 问题:

如错误所述,您需要包含对由 angular2-logger 导入的 Typescript 文件的引用,以便 TypeScript 知道它们。编辑 tsconfig.json(或 tsconfig.app.json,如果您使用 angular 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"
  ]
于 2019-09-03T14:06:55.660 回答
0

对我有用的临时解决方案。
安装的包有一个 dist dir node_modules/angular2-logger/dist/es6/

node_modules/angular2-logger/package.json main设置为
"main": "./dist/cjs/core.js",

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

您可能具有dist在安装过程中创建的不同目录结构。所以目标应该是将 main 指向已编译的core.js文件。

将所有导入语句更改Logger

import { Logger } from 'angular2-logger';

编译并运行并保持快乐。

我不知道这是一个错字还是深思熟虑的决定,但这甚至适用于ng build --prod

于 2018-03-28T08:13:47.983 回答