我使用Rese和FuseBox作为捆绑器。我目前遇到的问题是别名不起作用,所以我可以帮助处理相对路径地狱。
我的项目结构:
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
文件夹将继续添加更多我尝试的东西..
答案 0 :(得分:1)
我遇到的问题的解决办法是将tsconfig.json文件放在src
文件夹中,将项目/ app放在~
内。
在tsconfig.json中,我将baseUrl设置为root。
{
"compilerOptions": {
"baseUrl": ".",
// ...
}
}
然后,这允许我在所有文件中执行相同的绝对导入,因此很容易重用导入并在需要时快速复制。
import { service1, service2, service3 } from '~/services';
import { store1, store2 } from '~/stores';
波浪号通常代表许多系统的家庭或基础,所以一些开发者同意在我们的文件夹结构中使用它是合适的。虽然你必须记得从~
移除.gitignore
,但如果你有自动生成的东西并且它会自动生成。{/ p>