反应& FuseBox别名设置 - 绝对路径

时间:2018-03-14 00:02:50

标签: reactjs typescript bundling-and-minification absolute-path

我使用Rese和FuseBox作为捆绑器。我目前遇到的问题是别名不起作用,所以我可以帮助处理相对路径地狱。

我的项目结构:

Folder structure

stores文件夹包含我的MobX商店和index.ts文件,用于导出所有商店。 services有一堆服务类都在各自的文件中导出(没有index.ts)

所以在我的fuse.ts中我有:

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

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

import AccountStore from "stores";

我在"商店"。

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

我不确定别名部分是否错误?我在fuse.ts中的homeDir被设置为" src /"。我没有在tsconfig中设置任何路径或baseUrl,就像我在使用webpack设置绝对路径时所做的那样。不确定是否需要再次使用这些内容,或者我是否在使用别名时出错。

任何提示都会很棒:)

我已经查看了保险丝网站上的别名文档,并按照它进行了尝试并尝试了几种不同的组合,但没有更接近它的工作。会喜欢那些有这种工作的人的例子。

修改: 在尝试解决这个问题时,我还做了以下其他事情:

  • 删除.fusebox文件夹
  • 重新启动vscode
  • 检查了捆绑包,并在那里添加了波浪号,因此保险箱必须识别它?

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

1 个答案:

答案 0 :(得分:1)

我遇到的问题的解决办法是将tsconfig.json文件放在src文件夹中,将项目/ app放在~内。

enter image description here

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

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

然后,这允许我在所有文件中执行相同的绝对导入,因此很容易重用导入并在需要时快速复制。

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

波浪号通常代表许多系统的家庭或基础,所以一些开发者同意在我们的文件夹结构中使用它是合适的。虽然你必须记得从~移除.gitignore,但如果你有自动生成的东西并且它会自动生成。{/ p>