【发布时间】:2018-04-30 09:42:03
【问题描述】:
更新:已解决!感谢@JulesRandolph 指出循环依赖问题。
我目前正在开发的项目中遇到了一个非常愚蠢的情况。该项目是围绕最新版本的 TypeScript、webpack 和 awesome-typescript-loader 构建的。
tsconfig 包含以下别名:
"paths": {
"~actions" : [
"app/actions/index.ts"
],
"~components" : [
"app/components/index.ts"
],
"~helpers" : [
"app/helpers/index.ts"
],
"~middlewares" : [
"app/middlewares/index.ts"
],
"~redux" : [
"app/redux/index.ts"
],
"~styles/*" : [
"app/styles/*"
],
"~types" : [
"app/types/index.ts"
]
Webpack 别名配置显示如下(请注意,我也尝试不使用 $ 并针对该用法调整 tsconfig(使用/*)):
{
'~actions$': '/Users/user/Workspace/prj-name/app/actions/index.ts',
'~components$': '/Users/user/Workspace/prj-name/app/components/index.ts',
'~helpers$': '/Users/user/Workspace/prj-name/app/helpers/index.ts',
'~middlewares$': '/Users/user/Workspace/prj-name/app/middlewares/index.ts',
'~redux$': '/Users/user/Workspace/prj-name/app/redux/index.ts',
'~styles': '/Users/user/Workspace/prj-name/app/styles',
'~types$': '/Users/user/Workspace/prj-name/app/types/index.ts'
}
我的问题是,仅针对“app/redux/app.ts”文件,我无法使用以下语法导入:
import {
imp1,
imp2
} from '~redux';
导入未定义。但是我可以这样做:
import {
imp1
} from './[comp-name]';
在其他文件夹中,我可以使用相同的语法(和相同的文件夹名称)调用。此外,我可以从其他文件夹调用 ~redux 的导入。
我几乎尝试了我所知道的一切,但没有任何改变。
如果有人感兴趣,这里是(几乎)整个 Webpack 配置:https://pastebin.com/gBabDjH9
【问题讨论】:
-
我看不到
~reducers的别名或路径...我想这就是原因 -
对不起,reducers 是“redux”文件夹的名称,然后我重命名它只是为了看看是否会改变任何东西。感谢您指出,现在修复帖子。
-
好的,我不知道 webpack 别名的符号
$;你试过删除那些吗? -
是的。 $ 表示“确切路径”。考虑到我的目标是一个文件,完全匹配它是有意义的。
-
@bmatei
app/redux/index.ts中有什么内容?
标签: typescript webpack import module alias