首页 文章

Angular 4错误:有多个模块的名称只有外壳不同

提问于
浏览
4

ng服务命令后,我在Angular 4项目中出现以下错误 .

./src/app/Utils/config.service.ts有多个模块的名称只有外壳不同 . 在使用其他case-semantic编译文件系统时,这可能会导致意外行为 . 使用相同的套管 . 比较这些模块标识符:* D:\ ANGULAR \ siteprice.org \ node_modules \ @ngtools \ webpack \ src \ index.js!D:\ ANGULAR \ siteprice.org \ src \ app \ Utils \ config.service.ts使用者1个模块,i . 即D:\ ANGULAR \ siteprice.org \ node_modules \ @ngtools \ webpack \ src \ index.js!D:\ ANGULAR \ siteprice.org \ src \ app \ utils \ email.service.ts * D:\ ANGULAR \ siteprice . org \ node_modules \ @ngtools \ webpack \ src \ index.js!D:\ ANGULAR \ siteprice.org \ src \ app \ utils \ config.service.ts由2个模块使用,i . 即d:\ ANGULAR \ siteprice.org \ node_modules \ @ngtools \的WebPack的\ src \ index.js d:\ ANGULAR \ siteprice.org的\ src \程序\ app.module.ts

config.service.ts文件:

import { Injectable } from '@angular/core';

@Injectable()
export class ConfigService {

  _apiURI : string;

  constructor() {
      this._apiURI = 'http://www.example.com/xyz/api/';
    }

    getApiURI() {
        return this._apiURI;
    }

    getApiHost() {
        return this._apiURI.replace('api/','');
    }

}

email.service.ts:

import { Injectable } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import {Observable} from 'rxjs';
import 'rxjs/add/operator/map';
import { ConfigService } from '../Utils/config.service';
import { Email } from '../Models/email';

@Injectable()
export class EmailService {

  apiRoot: string = '';

  constructor(private http: Http, private configService: ConfigService) { 
    this.apiRoot = configService.getApiURI();
  }

我检查了服务名称的大小写,它们是正确的 .

1 回答

  • 7

    我发现了这个问题,我认为它可能是CLI中的一个错误 .

    Utils文件夹名称应为utils . 所以第一个字母是小写的 . 我的Windows目录中的utils文件夹是用小写创建的 . 所以我改变了这个:

    import { ConfigService } from '../Utils/config.service';
    

    至:

    import { ConfigService } from '../utils/config.service';
    

    Edit:

    看起来这是一个已知问题,其中一个建议的解决方案是使用kebap案例文件,windows中的文件夹名称 .

    https://github.com/AngularClass/angular-starter/issues/926

相关问题