React & FuseBox 别名设置 - 绝对路径

React & FuseBox alias settings - Absolute Paths

我正在使用带有 FuseBox 的 React 作为打包器。我目前遇到的问题是别名不起作用,因此我可以帮助处理相对路径问题。

我的项目结构:

stores 文件夹有我的 MobX 商店和一个导出所有商店的 index.ts 文件。 services 有一堆服务 类 全部导出到各自的文件中(没有 index.ts)

所以在我的 fuse.ts 我有:

alias: {
    "services": "~/services",
    "stores": "~/stores"
},

然后在我的 ui 文件夹中,例如我正在导入:

import AccountStore from "stores";

我在 "stores" 的那一行收到 [ts] Cannot find module 'stores' 错误。

不确定我的别名部分是否有误?我在 fuse.ts 中的 homeDir 设置为 "src/"。当我们使用 webpack 设置绝对路径时,我没有在 tsconfig 中设置任何路径或 baseUrl。不确定是否再次需要这些,或者这是我在使用别名时做错了什么。

任何提示都会很棒 :)

我查看了 fusebox 站点上的别名文档并按照它进行操作并尝试了几种不同的组合,但没有更接近于它的工作。会喜欢已经成功的人的一些例子。

编辑: 在尝试解决这个问题时,我还做了以下工作:

会继续添加更多的东西我试试..

我遇到的问题的解决方案是将 tsconfig.json 文件放入我的 src 文件夹并将 project/app 放入 ~.

在 tsconfig.json 中,我将 baseUrl 设置为 root。

{
    "compilerOptions": {
        "baseUrl": ".",
        // ...
    }
}

这让我可以进行绝对导入,所有文件都相同,因此可以轻松重用导入并在需要时快速复制。

import { service1, service2, service3 } from '~/services';
import { store1, store2 } from '~/stores';    

波浪号在很多系统上通常代表 home 或 base,因此一些开发人员同意在我们的文件夹结构中使用它是合适的。如果你有自动生成的东西并且它自动在那里,你必须记住从 .gitignore 中删除 ~