【问题标题】:TS2307 Cannot find a moduleTS2307 找不到模块
【发布时间】:2017-03-09 03:36:31
【问题描述】:

我正在尝试使用他们的快速入门指南、英雄之旅和风格指南来学习 Angular 2。但是,我并没有按照它的字母去做,而是试图让它适应我的一个小项目。这可能是一个非常愚蠢的错误,但我对 Angular 2 管理导入和导出的方式有点不舒服。

我在NPM start 上收到以下错误。

我正在尝试使用用户文件夹模块从共享文件夹中导入用户服务和用户模型,我的结构如下所示:

我的代码如下所示:

我知道错误的含义,毕竟它就在那里;找不到该模块,但我尝试了.user/shared../shared/users/shared,但没有任何效果。我认为这并不重要,但每个模块都有一个共享文件夹,我的代码基于此示例:https://angular.io/docs/ts/latest/guide/style-guide.html#!#application-structure

app/heroes/heroes.component.ts

任何解决这个问题的指针都很棒。

编辑:根据共享文件夹下的 index.ts 的建议进行了修改。但现在应用程序无法正常加载。

【问题讨论】:

    标签: angular typescript


    【解决方案1】:

    shared 目录中添加一个index.ts(桶)文件,用于从共享目录导出文件

    index.ts

    export * from './user.model';
    export * from './mock-users';
    export * from './user.service';
    

    【讨论】:

    • 它似乎可以编译,但现在应用程序无法加载(它以前这样做过)我已经更新了 OP,以防你告诉我我是否忽略了一些重要的事情。无论如何感谢您的迅速回复!
    • 我不使用 SystemJS,所以我不确定它如何处理桶。如果不起作用,则直接导入文件,而不是从桶中导入,即import { User } from './shared/user.model'
    • 是的,看看图像,它看起来并没有正确处理桶,即使 TypeScript 编译处理,模块加载系统也不是。自从我开始学习 Angular 以来,我没有使用过 SystemJS,所以我不记得我以前是否使用过桶。我知道 webpack 处理起来很好
    • 我删除了桶并使用了您提供的语法,它现在可以工作了。我确实想知道为什么,我想我稍后会调查它,但现在谢谢!你知道为什么我原来的导入语句失败了吗?它是由 ./shared 引起的吗?我虽然他可以找到该文件夹​​,因为 shared 在用户内部
    • 因为没有shared.ts文件。导入时,您正在导入文件。桶允许您列出要从文件夹导出的所有文件,以便您可以使用该文件夹专用语法
    猜你喜欢
    • 2022-11-02
    • 2019-11-29
    • 2017-10-13
    • 2017-09-27
    • 1970-01-01
    • 2017-02-02
    • 2017-09-17
    • 2021-03-16
    • 2017-02-24
    相关资源
    最近更新 更多