【问题标题】:Can't import ng2 service unless use specific capitalization除非使用特定的大写字母,否则无法导入 ng2 服务
【发布时间】:2017-09-01 00:24:29
【问题描述】:

我在文件“myapi.service.ts”中创建了一个服务,其中包含:

export class MyAPIService {

在我的组件中,我按如下方式导入服务:

import { MyAPIService } from '../myapi.service';

但是每次我编译我都会得到这个错误:

模块 '"/myapi.service"' 没有导出的成员 'MyAPIService'。

问题似乎是大写。如果我导入“MyapiService”而不是“MyAPIService”,那么它编译得很好。但为什么? ng2 是否需要/强制某些大写?它不应该使用我创建类时使用的大小写吗?

【问题讨论】:

    标签: angular capitalization


    【解决方案1】:

    在 Angular 或 TypeScript 中没有这样的东西。确保代码中没有其他错误。

    Here's a working example

    也许还有(虽然这是一个真正的边缘案例),检查你的 webpack 配置是否有任何超级疯狂的东西,或者你玩过 tsconfig 的 paths 属性,但很可能这是你的一个更简单的错误代码。

    也许您也需要重新启动构建监视/开发服务器。

    更新

    如果这是一个外部依赖项(NPM 模块),请尝试删除您的 node_modules 文件夹并再次运行 npm install

    与 cmets 一样,OP 就是这种情况。

    【讨论】:

    • 我尝试重新启动 'ng serve' 但没有任何变化。 webpack 配置文件在哪里?
    • 我找到了 webpack 配置,看起来不错。有没有办法告诉 ng 为项目重新创建任何配置/其他文件?我确实将项目移动到另一个目录,我想知道这是否影响了某些东西
    • 我删除了 node_modules 目录,然后执行了“npm i”来重新创建文件夹。在那之后,事情开始起作用了。我会接受你的回答,因为这应该引导其他用户找到正确的解决方案。 (或将此添加到您的答案中)
    • 由于../,我最初认为这是在您的代码中,但这完全有道理。答案已更新。感谢您接受它。
    猜你喜欢
    • 2016-04-29
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    相关资源
    最近更新 更多